[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