| ... | ... | 
                  @@ -1,3 +1,6 @@  | 
              
| 1 | 
                  +0.1615  | 
              |
| 2 | 
                  + fixed DBIx::Custom::QueryBuilder build_query() bug  | 
              |
| 3 | 
                  + required Perl 5.008001 to use @CARP_NOT  | 
              |
| 1 | 4 | 
                  0.1614  | 
              
| 2 | 5 | 
                  removed DBIx::Custom::Query start_tag and end tag attributes  | 
              
| 3 | 6 | 
                     enable escaping '{' and '}' in the source of SQL
                 | 
              
| ... | ... | 
                  @@ -1,5 +1,8 @@  | 
              
| 1 | 1 | 
                  package DBIx::Custom;  | 
              
| 2 | 2 | 
                   | 
              
| 3 | 
                  +our $VERSION = '0.1615';  | 
              |
| 4 | 
                  +  | 
              |
| 5 | 
                  +use 5.008001;  | 
              |
| 3 | 6 | 
                  use strict;  | 
              
| 4 | 7 | 
                  use warnings;  | 
              
| 5 | 8 | 
                   | 
              
| ... | ... | 
                  @@ -498,14 +501,12 @@ sub AUTOLOAD {
                 | 
              
| 498 | 501 | 
                      return $self->methods->{$method}->($self, @_);
                 | 
              
| 499 | 502 | 
                  }  | 
              
| 500 | 503 | 
                   | 
              
| 504 | 
                  +1;  | 
              |
| 505 | 
                  +  | 
              |
| 501 | 506 | 
                  =head1 NAME  | 
              
| 502 | 507 | 
                   | 
              
| 503 | 508 | 
                  DBIx::Custom - DBI interface, having hash parameter binding and filtering system  | 
              
| 504 | 509 | 
                   | 
              
| 505 | 
                  -=cut  | 
              |
| 506 | 
                  -  | 
              |
| 507 | 
                  -our $VERSION = '0.1614';  | 
              |
| 508 | 
                  -  | 
              |
| 509 | 510 | 
                  =head1 STABILITY  | 
              
| 510 | 511 | 
                   | 
              
| 511 | 512 | 
                  B<This module is not stable>.  | 
              
| ... | ... | 
                  @@ -68,11 +68,14 @@ sub _parse {
                 | 
              
| 68 | 68 | 
                  my $before = '';  | 
              
| 69 | 69 | 
                   | 
              
| 70 | 70 | 
                  # Position  | 
              
| 71 | 
                  - my $pos;  | 
              |
| 71 | 
                  + my $pos = 0;  | 
              |
| 72 | 72 | 
                   | 
              
| 73 | 73 | 
                  # Parse  | 
              
| 74 | 74 | 
                  my $original = $source;  | 
              
| 75 | 
                  -    while (my $c = substr($source, 0, 1, '')) {
                 | 
              |
| 75 | 
                  +    while (defined(my $c = substr($source, $pos, 1))) {
                 | 
              |
| 76 | 
                  +  | 
              |
| 77 | 
                  + # Last  | 
              |
| 78 | 
                  + last unless length $c;  | 
              |
| 76 | 79 | 
                   | 
              
| 77 | 80 | 
                  # State is text  | 
              
| 78 | 81 | 
                           if ($state eq 'text') {
                 | 
              
| ... | ... | 
                  @@ -147,15 +147,19 @@ like($@, qr/\QColumn name and count of values must be specified in tag "{in }"/,
                 | 
              
| 147 | 147 | 
                  test 'variouse source';  | 
              
| 148 | 148 | 
                   $source = "a {= b} c \\{ \\} {= \\{} {= \\}} d;";
                 | 
              
| 149 | 149 | 
                  $query = $builder->build_query($source);  | 
              
| 150 | 
                  -is($query->sql, 'a b = ? c { } { = ? } = ? d;', "$test : 1");
                 | 
              |
| 150 | 
                  +is($query->sql, 'a b = ? c { } { = ? } = ? d;', "$test : basic : 1");
                 | 
              |
| 151 | 151 | 
                   | 
              
| 152 | 152 | 
                  $source = "abc;";  | 
              
| 153 | 153 | 
                  $query = $builder->build_query($source);  | 
              
| 154 | 
                  -is($query->sql, 'abc;', "$test : 2");  | 
              |
| 154 | 
                  +is($query->sql, 'abc;', "$test : basic : 2");  | 
              |
| 155 | 155 | 
                   | 
              
| 156 | 156 | 
                   $source = "{= a}";
                 | 
              
| 157 | 157 | 
                  $query = $builder->build_query($source);  | 
              
| 158 | 
                  -is($query->sql, 'a = ?;', "$test : 3");  | 
              |
| 158 | 
                  +is($query->sql, 'a = ?;', "$test : only tag");  | 
              |
| 159 | 
                  +  | 
              |
| 160 | 
                  +$source = "000;";  | 
              |
| 161 | 
                  +$query = $builder->build_query($source);  | 
              |
| 162 | 
                  +is($query->sql, '000;', "$test : contain 0 value");  | 
              |
| 159 | 163 | 
                   | 
              
| 160 | 164 | 
                   $source = "a {= b} }";
                 | 
              
| 161 | 165 | 
                   eval{$builder->build_query($source)};
                 | 
              
| ... | ... | 
                  @@ -165,3 +169,4 @@ $source = "a {= {}";
                 | 
              
| 165 | 169 | 
                   eval{$builder->build_query($source)};
                 | 
              
| 166 | 170 | 
                   like($@, qr/unexpected "{"/, "$test : error : 2");
                 | 
              
| 167 | 171 | 
                   | 
              
| 172 | 
                  +  |