From: Peter Rabbitson Date: Thu, 21 Oct 2010 13:53:11 +0000 (+0000) Subject: Fix incorrect padding X-Git-Tag: v1.70~33 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=e4570c8e06ddb929c5ae0322cb2e42ef523a6ed4;p=dbsrgits%2FSQL-Abstract.git Fix incorrect padding --- diff --git a/lib/SQL/Abstract/Tree.pm b/lib/SQL/Abstract/Tree.pm index fd9f665..4760672 100644 --- a/lib/SQL/Abstract/Tree.pm +++ b/lib/SQL/Abstract/Tree.pm @@ -377,7 +377,7 @@ sub pad_keyword { $before = $self->newline . $self->indent($depth + $self->indentmap->{lc $keyword}); } $before = '' if $depth == 0 and defined $starters{lc $keyword}; - return [$before, ' ']; + return [$before, '']; } sub indent { ($_[0]->indent_string||'') x ( ( $_[0]->indent_amount || 0 ) * $_[1] ) } @@ -434,10 +434,14 @@ sub _unparse { return $self->fill_in_placeholder($bindargs); } elsif ($car eq 'PAREN') { - return '(' . - join(' ', - map $self->_unparse($_, $bindargs, $depth + 2), @{$cdr}) . - ($self->_is_key($cdr)?( $self->newline||'' ).$self->indent($depth + 1):'') . ') '; + return sprintf ('(%s)', + join (' ', map { $self->_unparse($_, $bindargs, $depth + 2) } @{$cdr} ) + . + ($self->_is_key($cdr) + ? ( $self->newline||'' ) . $self->indent($depth + 1) + : '' + ) + ); } elsif ($car eq 'AND' or $car eq 'OR' or $car =~ / ^ $binary_op_re $ /x ) { return join (" $car ", map $self->_unparse($_, $bindargs, $depth), @{$cdr}); diff --git a/t/13whitespace_keyword.t b/t/13whitespace_keyword.t index 20929bf..c06d2b0 100644 --- a/t/13whitespace_keyword.t +++ b/t/13whitespace_keyword.t @@ -21,7 +21,7 @@ my $sqlat = SQL::Abstract::Tree->new({ for ( keys %{$sqlat->indentmap}) { my ($l, $r) = @{$sqlat->pad_keyword($_, 1)}; - is($r, ' ', "right is a space for $_"); + is($r, '', "right is empty for $_"); is($l, "\n " . ' ' x $sqlat->indentmap->{$_}, "left calculated correctly for $_" ); } diff --git a/t/15placeholders.t b/t/15placeholders.t index 4ee0db8..a82b668 100644 --- a/t/15placeholders.t +++ b/t/15placeholders.t @@ -4,15 +4,13 @@ use warnings; use Test::More; use SQL::Abstract::Tree; -my $placeholders = ['station', 'lolz']; - { my $sqlat = SQL::Abstract::Tree->new({ fill_in_placeholders => 1, placeholder_surround => [qw(; -)], }); - is($sqlat->fill_in_placeholder($placeholders), q(;lolz-), + is($sqlat->fill_in_placeholder(['lolz']), q(;lolz-), 'placeholders are populated correctly' ); } @@ -23,7 +21,7 @@ my $placeholders = ['station', 'lolz']; placeholder_surround => [qw(< >)], }); - is($sqlat->fill_in_placeholder($placeholders), q(), + is($sqlat->fill_in_placeholder(['station']), q(), 'placeholders are populated correctly and in order' ); } @@ -35,7 +33,7 @@ my $placeholders = ['station', 'lolz']; placeholder_surround => [qw(' ')], }); - is $sqlat->format('SELECT ? as x, ? as y FROM Foo WHERE t > ? and z IN (?, ?, ?) ', ['frew', 'ribasushi', '2008-12-12', 1, 2, 3]), + is $sqlat->format('SELECT ? as x, ? as y FROM Foo WHERE t > ? and z IN (?, ?, ?) ', [qw/frew ribasushi 2008-12-12 1 2 3/]), q[SELECT 'frew' as x, 'ribasushi' as y FROM Foo WHERE t > '2008-12-12' AND z IN ('1', '2', '3')], 'Complex placeholders work'; }