The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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.