AnyEvent-Processor

 view release on metacpan or  search on metacpan

lib/AnyEvent/Processor/Conversion.pm  view on Meta::CPAN

package AnyEvent::Processor::Conversion;
# ABSTRACT: Base class for conversion type subclasses
$AnyEvent::Processor::Conversion::VERSION = '0.006';
use Moose;

extends 'AnyEvent::Processor';

use Modern::Perl;


has reader => (
    is => 'rw', 
    does => 'MooseX::RW::Reader',
);

has writer => ( 
    is => 'rw',
    does => 'MooseX::RW::Writer',
);

has converter => ( is => 'rw', does => 'AnyEvent::Processor::Converter' );


sub run  {
    my $self = shift;
    $self->writer->begin();
    $self->SUPER::run();
    $self->writer->end();
};


sub process {
    my $self = shift;
    my $record = $self->reader->read();
    if ( $record ) {
        $self->SUPER::process();
        my $converter = $self->converter;
        my $converted_record = 
            $converter ? $converter->convert( $record ) : $record;
        unless ( $converted_record ) {
            # Conversion échouée mais il reste des enregistrements
            # print "NOTICE NON CONVERTIE #", $self->count(), "\n";
            return 1;
        }
        $self->writer->write( $converted_record );
        return 1;
    }
    return 0;
}


no Moose;
__PACKAGE__->meta->make_immutable;

1;

__END__

=pod

=encoding UTF-8

=head1 NAME

AnyEvent::Processor::Conversion - Base class for conversion type subclasses

=head1 VERSION

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 2.186 seconds using v1.00-cache-2.02-grep-82fe00e-cpan-48ebf85a1963 )