File Coverage

File:lib/SQL/Insert.pm
Coverage:88.2%

linestmtbrancondsubpodtimecode
1package SQL::Insert;
2
3
24
24
24
184
72
205
use strict;
4
24
24
24
256
81
219
use warnings;
5
24
24
24
262
82
197
use base 'SQL::Statement';
6
7sub new {
8
226
0
5692
    my $class = ref $_[0] ? ref shift : shift;
9
226
29066
    bless {
10        table => $_[0],
11        values => [],
12        cols => [],
13    }, $class;
14}
15
16sub insert {
17
1
0
10
    $_[0]->{table} = $_[1];
18
1
8
    $_[0]
19}
20
21sub cols {
22
313
0
17069
    my $self = shift;
23
313
313
1045
2977
    push @{ $self->{cols} }, @_;
24
313
3121
    $self;
25}
26
27sub values {
28
318
0
1664
    my $self = shift;
29
318
318
1068
2912
    push @{ $self->{values} }, @_;
30
318
1815
    $self;
31}
32
33sub generate {
34
267
0
1361
    my $self = shift;
35
267
756
    my $sql;
36
267
1222
    local $" = ', ';
37
267
2024
    $sql .= "insert into $self->{table}";
38
267
1394
    my $cols = $self->{cols};
39
267
4127
    if ($cols and @$cols) {
40
265
2717
        $sql .= " (@$cols)";
41    }
42
267
267
1264
2699
    $sql .= " values (@{ $self->{values} })";
43
267
2071
    return $sql . ";\n";
44}
45
461;
47