File Coverage

lib/SQL/QueryBuilder/Flex/Writer.pm
Criterion Covered Total %
statement 29 29 100.0
branch 3 4 75.0
condition 2 2 100.0
subroutine 8 8 100.0
pod 0 6 0.0
total 42 49 85.7


line stmt bran cond sub pod time code
1             package SQL::QueryBuilder::Flex::Writer;
2              
3 25     25   1261 use strict;
  25         40  
  25         906  
4 25     25   129 use warnings;
  25         43  
  25         10941  
5              
6             sub new {
7 30     30 0 3486 my ($class) = @_;
8 30         205 my $self = bless {
9             _buffer => [],
10             _params => [],
11             }, $class;
12 30         248 return $self;
13             }
14              
15             sub clear {
16 26     26 0 59 my ($self) = @_;
17 26         99 $self->{_buffer} = [];
18 26         117 $self->{_params} = [];
19             }
20              
21             sub write {
22 183     183 0 323 my ($self, $str, $indent) = @_;
23 183   100     193 push @{ $self->{_buffer} }, [ $str, $indent || 0 ];
  183         933  
24 183         512 return;
25             }
26              
27             sub add_params {
28 25     25 0 62 my ($self, @params) = @_;
29 25         35 push @{ $self->{_params} }, @params;
  25         52  
30 25         59 return;
31             }
32              
33             sub get_params {
34 26     26 0 51 my ($self) = @_;
35 26 50       127 return wantarray ? @{ $self->{_params} } : $self->{_params};
  26         185  
36             }
37              
38             sub to_sql {
39 29     29 0 65 my ($self, $indent) = @_;
40              
41 3         14 return $indent
42             ? join(
43             "\n",
44             map {
45 1         3 join('', (" ") x $_->[1], $_->[0])
46 179         495 } @{ $self->{_buffer} }
47             )
48             : join(
49             ' ',
50             map {
51 28         129 join(' ', $_->[0])
52 29 100       141 } @{ $self->{_buffer} }
53             )
54             ;
55             }
56              
57             1;