[Jifty-commit] r6026 - Jifty-DBI/branches/tisql/lib/Jifty/DBI

Jifty commits jifty-commit at lists.jifty.org
Fri Nov 21 17:12:55 EST 2008


Author: ruz
Date: Fri Nov 21 17:12:55 2008
New Revision: 6026

Modified:
   Jifty-DBI/branches/tisql/lib/Jifty/DBI/Tisql.pm

Log:
* use standalone parser instead of subclassing Parse::BooleanLogic

Modified: Jifty-DBI/branches/tisql/lib/Jifty/DBI/Tisql.pm
==============================================================================
--- Jifty-DBI/branches/tisql/lib/Jifty/DBI/Tisql.pm	(original)
+++ Jifty-DBI/branches/tisql/lib/Jifty/DBI/Tisql.pm	Fri Nov 21 17:12:55 2008
@@ -3,11 +3,13 @@
 use strict;
 use warnings;
 
-use base qw(Parse::BooleanLogic);
 use Scalar::Util qw(refaddr blessed);
 
 use Data::Dumper;
 
+use Parse::BooleanLogic;
+my $parser = new Parse::BooleanLogic;
+
 use Regexp::Common qw(delimited);
 my $re_delim      = qr{$RE{delimited}{-delim=>qq{\'\"}}};
 my $re_field      = qr{[a-zA-Z][a-zA-Z0-9_]*};
@@ -41,6 +43,11 @@
     '<=' => '>',
 );
 
+sub new {
+    my $proto = shift;
+    return bless { @_ }, ref($proto)||$proto;
+}
+
 sub enq {
     if ( defined wantarray ) {
         my $s = $_[0];
@@ -109,7 +116,7 @@
         );
     };
     $self->{'bindings'} = \@binds;
-    $tree->{'conditions'} = $self->as_array(
+    $tree->{'conditions'} = $parser->as_array(
         $string, operand_cb => $operand_cb,
     );
     $self->{'bindings'} = undef;
@@ -173,7 +180,7 @@
             $tmp{$_}++ foreach map refaddr($_), @$bundle;
             my $cur_refaddr = refaddr( $condition );
             if ( $prefix eq 'has' ) {
-                next unless $self->fsolve(
+                next unless $parser->fsolve(
                     $self->{'tisql'}{'conditions'},
                     sub {
                         my $ra = refaddr($_[0]);
@@ -183,7 +190,7 @@
                     },
                 );
             } else {
-                next if $self->fsolve(
+                next if $parser->fsolve(
                     $self->{'tisql'}{'conditions'},
                     sub {
                         my $ra = refaddr($_[0]);
@@ -329,7 +336,7 @@
         $meta->{'refers_to'}->new_item, 'LEFT'
     );
 
-    my $tree = $self->as_array(
+    my $tree = $parser->as_array(
         $meta->{'column'}->tisql,
         operand_cb => sub { return $self->parse_condition( 
             $_[0], sub { return $self->find_column(
@@ -582,7 +589,7 @@
         substr($str, 0, length($name)) = '' if 0 == rindex $str, "$name.", 0;
         return $self->find_column($str, $aliases);
     };
-    my $conditions = $self->as_array(
+    my $conditions = $parser->as_array(
         $column->tisql,
         operand_cb => sub {
             return $self->parse_condition( $_[0], $column_cb )


More information about the Jifty-commit mailing list