File Coverage

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