File Coverage

lib/DataFlow/Policy/WithSpec.pm
Criterion Covered Total %
statement 7 9 77.7
branch n/a
condition n/a
subroutine 3 3 100.0
pod n/a
total 10 12 83.3


line stmt bran cond sub pod time code
1             package DataFlow::Policy::WithSpec;
2              
3 1     1   2682 use strict;
  1         2  
  1         39  
4 1     1   6 use warnings;
  1         2  
  1         140  
5              
6             # ABSTRACT: A ProcPolicy that treats scalars items and pass other types as-is.
7              
8             our $VERSION = '1.121830'; # VERSION
9              
10 1     1   524 use Moose;
  0            
  0            
11             with 'DataFlow::Role::ProcPolicy';
12              
13             use namespace::autoclean;
14              
15             has 'spec' => (
16             is => 'ro',
17             isa => 'Str',
18             required => 1,
19             );
20              
21             sub _spec_handle {
22             my ( $spec, $p, $item ) = @_;
23              
24             my $piece = '$item' . $spec;
25             my $data = eval $piece; ## no critic
26             my @r = _run_p( $p, $data );
27             eval $piece . '= $r[0]'; ## no critic
28             return $item;
29             }
30              
31             sub _build_default_handler {
32             my $self = shift;
33             return sub {
34             my ( $p, $item ) = @_;
35             _spec_handle( $self->spec, $p, $item );
36             };
37             }
38              
39             __PACKAGE__->meta->make_immutable;
40              
41             1;
42              
43              
44              
45             =pod
46              
47             =encoding utf-8
48              
49             =head1 NAME
50              
51             DataFlow::Policy::WithSpec - A ProcPolicy that treats scalars items and pass other types as-is.
52              
53             =head1 VERSION
54              
55             version 1.121830
56              
57             =head1 SEE ALSO
58              
59             Please see those modules/websites for more information related to this module.
60              
61             =over 4
62              
63             =item *
64              
65             L<DataFlow|DataFlow>
66              
67             =back
68              
69             =head1 AUTHOR
70              
71             Alexei Znamensky <russoz@cpan.org>
72              
73             =head1 COPYRIGHT AND LICENSE
74              
75             This software is copyright (c) 2011 by Alexei Znamensky.
76              
77             This is free software; you can redistribute it and/or modify it under
78             the same terms as the Perl 5 programming language system itself.
79              
80             =head1 BUGS AND LIMITATIONS
81              
82             You can make new bug reports, and view existing ones, through the
83             web interface at L<http://rt.cpan.org>.
84              
85             =head1 DISCLAIMER OF WARRANTY
86              
87             BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
88             FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT
89             WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER
90             PARTIES PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND,
91             EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
92             IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
93             PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
94             SOFTWARE IS WITH YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME
95             THE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION.
96              
97             IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
98             WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
99             REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE LIABLE
100             TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, OR
101             CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
102             SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
103             RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
104             FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
105             SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
106             DAMAGES.
107              
108             =cut
109              
110              
111             __END__
112