File Coverage

blib/lib/SQL/OOP/IDArray.pm
Criterion Covered Total %
statement 33 33 100.0
branch 7 8 87.5
condition 5 6 83.3
subroutine 8 8 100.0
pod 3 3 100.0
total 56 58 96.5


line stmt bran cond sub pod time code
1             package SQL::OOP::IDArray;
2 16     16   1116 use strict;
  16         28  
  16         486  
3 16     16   120 use warnings;
  16         25  
  16         429  
4 16     16   74 use Scalar::Util qw(blessed);
  16         31  
  16         793  
5 16     16   939 use SQL::OOP::ID;
  16         32  
  16         373  
6 16     16   82 use base qw(SQL::OOP::Array);
  16         44  
  16         6044  
7              
8             ### ---
9             ### Constructor
10             ### ---
11             sub new {
12 19     19 1 5490 my ($class, @array) = @_;
13 19         87 my $self = $class->SUPER::new(@array)->set_sepa(', ');
14             }
15              
16             ### ---
17             ### Append ID
18             ### ---
19             sub append {
20 22     22 1 46 my ($self, @array) = @_;
21 22         86 $self->_init_gen;
22 22 100 100     84 if (ref $array[0] && ref $array[0] eq 'ARRAY') {
23 2         4 @array = @{$array[0]};
  2         6  
24             }
25 22         37 foreach my $elem (@array) {
26 38 100 66     194 if (blessed($elem) && $elem->isa('SQL::OOP::Base')) {
    50          
27 4         6 push(@{$self->{array}}, $elem);
  4         15  
28             } elsif ($elem) {
29 34         39 push(@{$self->{array}}, SQL::OOP::ID->new($elem));
  34         119  
30             }
31             }
32 22         113 return $self;
33             }
34              
35             ### ---
36             ### parenthisize sub query
37             ### ---
38             sub fix_element_in_list_context {
39 30     30 1 42 my ($self, $obj) = @_;
40 30 100       182 if ($obj->isa('SQL::OOP::Command')) {
41 1         5 return '('. $obj->to_string. ')';
42             }
43 29         80 return $obj->to_string;
44             }
45              
46             1;
47              
48             __END__