File: Conversion.pm

package info (click to toggle)
libanyevent-processor-perl 0.006-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 156 kB
  • sloc: perl: 201; makefile: 2
file content (97 lines) | stat: -rw-r--r-- 1,826 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
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

version 0.006

=head1 ATTRIBUTES

=head2 reader

The L<MooseX::RW::Reader> from which reading something.

=head2 writer

The L<Moose::RW::Writer> in which writing something.

=head2 converter

Convert something read from the reader into something to write to the writer.

=head1 AUTHOR

Frédéric Demians <f.demians@tamil.fr>

=head1 COPYRIGHT AND LICENSE

This software is Copyright (c) 2015 by Fréderic Demians.

This is free software, licensed under:

  The GNU General Public License, Version 3, June 2007

=cut