NAME
    Paludis::UseCleaner - Remove cruft from your use.conf

VERSION
    version 0.01000307

SYNOPSIS
    This module handles the core behaviour of the Use Cleaner, to be
    consumed inside other applications.

    For a "Just Use it" interface, you want paludis-usecleaner.pl and
    Paludis::UseCleaner::App

        my $cleaner = Paludis::UseCleaner->new(
            input     => somefd,
            output    => somefd,
            rejects   => somefd,
            debug     => fd_for_debugging
            dot_trace => fd_for_dot_traces,
          ( # Optional
            display_ui => $object_to_handle_debug_messages
            display_ui_class => $classname_to_construct_a_display_ui
            display_ui_generator => $coderef_to_generate_object_for_display_ui
          )
        );

        $cleaner->do_work();

METHODS
  do_work
        $cleaner->do_work();

    Executes the various transformations and produces the cleaned output
    from the input.

ATTRIBUTES
  input
        $cleaner->input( \*STDIN );
        $cleaner->input( $read_fh );

  output
        $cleaner->output( \*STDOUT );
        $cleaner->output( $write_fh );

  rejects
        $cleaner->rejects( \*STDOUT );
        $cleaner->rejects( $write_fh );

  debug
        $cleaner->debug( \*STDERR );
        $cleaner->debug( $write_fh );

  dot_trace
        $cleaner->dot_trace( \*STDERR );
        $cleaner->dot_trace( $write_fh );

  display_ui
        $cleaner->display_ui( $object );

  display_ui_class
        $cleaner->display_ui_class( 'Some::Class::Name' );

  display_ui_generator
        $cleaner->display_ui_generator( sub {
            my $self = shift;
            ....
            return $object;
        });

PRIVATE METHODS
  __tokenize
        my @line = __tokenize( $line );

    STRIPPED: This method is made invisible to outside code after compile.

  __is_empty_line
        if( __is_empty_line(@line) ){ }

    STRIPPED: This method is made invisible to outside code after compile.

  __is_star_rule
        if( __is_star_rule(@line) ){ }

    STRIPPED: This method is made invisible to outside code after compile.

  __tokenparse
        my ( $spec, $use, $extras ) = __tokenparse( @line );

    STRIPPED: This method is made invisible to outside code after compile.

  __extract_flags
        my ( @flags ) = __extract_flags( \@tokens );

    STRIPPED: This method is made invisible to outside code after compile.

  __extract_label
        my ( $label ) = __extract_label( \@tokens );

    STRIPPED: This method is made invisible to outside code after compile.

  _build_display_ui_class
        my $class = $cleaner->_build_display_ui_class();

  _build_display_ui_generator
        my $generator  $cleaner->_build_display_ui_generator();

  _build_display_ui
        my $object = $cleaner->_build_display_ui();

AUTHOR
    Kent Fredric <kentnl@cpan.org>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2010 by Kent Fredric <kentnl@cpan.org>.

    This is free software; you can redistribute it and/or modify it under
    the same terms as the Perl 5 programming language system itself.