| File: | lib/SQL/Insert.pm |
| Coverage: | 88.2% |
| line | stmt | bran | cond | sub | pod | time | code |
|---|---|---|---|---|---|---|---|
| 1 | package 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 | |||||||
| 7 | sub 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 | |||||||
| 16 | sub insert { | ||||||
| 17 | 1 | 0 | 10 | $_[0]->{table} = $_[1]; | |||
| 18 | 1 | 8 | $_[0] | ||||
| 19 | } | ||||||
| 20 | |||||||
| 21 | sub cols { | ||||||
| 22 | 313 | 0 | 17069 | my $self = shift; | |||
| 23 | 313 313 | 1045 2977 | push @{ $self->{cols} }, @_; | ||||
| 24 | 313 | 3121 | $self; | ||||
| 25 | } | ||||||
| 26 | |||||||
| 27 | sub values { | ||||||
| 28 | 318 | 0 | 1664 | my $self = shift; | |||
| 29 | 318 318 | 1068 2912 | push @{ $self->{values} }, @_; | ||||
| 30 | 318 | 1815 | $self; | ||||
| 31 | } | ||||||
| 32 | |||||||
| 33 | sub 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 | |||||||
| 46 | 1; | ||||||
| 47 | |||||||