[Rt-commit] r4546 - in DBIx-SearchBuilder/trunk: . SearchBuilder
inc/Module/Install
jesse at bestpractical.com
jesse at bestpractical.com
Thu Feb 16 19:29:50 EST 2006
Author: jesse
Date: Thu Feb 16 19:29:49 2006
New Revision: 4546
Modified:
DBIx-SearchBuilder/trunk/ (props changed)
DBIx-SearchBuilder/trunk/Changes
DBIx-SearchBuilder/trunk/META.yml
DBIx-SearchBuilder/trunk/SearchBuilder.pm
DBIx-SearchBuilder/trunk/SearchBuilder/Handle.pm
DBIx-SearchBuilder/trunk/inc/Module/Install.pm
DBIx-SearchBuilder/trunk/inc/Module/Install/Base.pm
DBIx-SearchBuilder/trunk/inc/Module/Install/Include.pm
DBIx-SearchBuilder/trunk/inc/Module/Install/Makefile.pm
DBIx-SearchBuilder/trunk/inc/Module/Install/Metadata.pm
Log:
r23819 at truegrounds: jesse | 2006-02-16 16:27:55 -0800
* OR on left joins; 1.39
Modified: DBIx-SearchBuilder/trunk/Changes
==============================================================================
--- DBIx-SearchBuilder/trunk/Changes (original)
+++ DBIx-SearchBuilder/trunk/Changes Thu Feb 16 19:29:49 2006
@@ -1,5 +1,9 @@
Revision history for Perl extension DBIx::SearchBuilder.
+1.39 Thu Feb 16 16:27:42 PST 2006
+* Allow ORs on left joins
+
+
1.38 Thu Dec 29 03:17:54 EST 2005
* Released 1.37 dev series
Modified: DBIx-SearchBuilder/trunk/META.yml
==============================================================================
--- DBIx-SearchBuilder/trunk/META.yml (original)
+++ DBIx-SearchBuilder/trunk/META.yml Thu Feb 16 19:29:49 2006
@@ -1,19 +1,20 @@
-name: DBIx-SearchBuilder
-version: 1.38
-license: perl
-distribution_type: module
build_requires:
- Test::More: 0.52
DBD::SQLite: 0
-requires:
- DBI: 0
- Want: 0
- Encode: 0
- Class::ReturnValue: 0.4
- Cache::Simple::TimedExpiry: 0.21
- Clone: 0
+ Test::More: 0.52
+distribution_type: module
+generated_by: Module::Install version 0.52
+license: perl
+name: DBIx-SearchBuilder
no_index:
directory:
- t
- inc
-generated_by: Module::Install version 0.46
+ - t
+requires:
+ Cache::Simple::TimedExpiry: 0.21
+ Class::ReturnValue: 0.4
+ Clone: 0
+ DBI: 0
+ Encode: 0
+ Want: 0
+version: 1.38
Modified: DBIx-SearchBuilder/trunk/SearchBuilder.pm
==============================================================================
--- DBIx-SearchBuilder/trunk/SearchBuilder.pm (original)
+++ DBIx-SearchBuilder/trunk/SearchBuilder.pm Thu Feb 16 19:29:49 2006
@@ -882,8 +882,11 @@
# $restriction to point htere. otherwise, lets construct normally
if ( $args{'LEFTJOIN'} ) {
- $restriction =
- \$self->{'left_joins'}{ $args{'LEFTJOIN'} }{'criteria'}{"$Clause"};
+ if ($args{'ENTRYAGGREGATOR'} ) {
+ $self->{'left_joins'}{ $args{'LEFTJOIN'} }{'entry_aggregator'} =
+ $args{'ENTRYAGGREGATOR'};
+ }
+ $restriction = \$self->{'left_joins'}{ $args{'LEFTJOIN'} }{'criteria'}{"$Clause"};
}
else {
$restriction = \$self->{'restrictions'}{"$Clause"};
Modified: DBIx-SearchBuilder/trunk/SearchBuilder/Handle.pm
==============================================================================
--- DBIx-SearchBuilder/trunk/SearchBuilder/Handle.pm (original)
+++ DBIx-SearchBuilder/trunk/SearchBuilder/Handle.pm Thu Feb 16 19:29:49 2006
@@ -997,12 +997,15 @@
my %seen;
while ( my $join = shift @keys ) {
+ my $aggregator = $sb->{'left_joins'}{$join}{'entry_aggregator'}
+ || 'AND';
+
if ( ! $sb->{'left_joins'}{$join}{'depends_on'} || $seen_aliases{ $sb->{'left_joins'}{$join}{'depends_on'} } ) {
$join_clause = "(" . $join_clause;
$join_clause .=
$sb->{'left_joins'}{$join}{'alias_string'} . " ON (";
$join_clause .=
- join ( ') AND( ',
+ join ( ") $aggregator ( ",
values %{ $sb->{'left_joins'}{$join}{'criteria'} } );
$join_clause .= ")) ";
Modified: DBIx-SearchBuilder/trunk/inc/Module/Install.pm
==============================================================================
--- DBIx-SearchBuilder/trunk/inc/Module/Install.pm (original)
+++ DBIx-SearchBuilder/trunk/inc/Module/Install.pm Thu Feb 16 19:29:49 2006
@@ -1,10 +1,17 @@
#line 1 "/home/jesse/svk/DBIx-SearchBuilder/inc/Module/Install.pm - /usr/local/share/perl/5.8.7/Module/Install.pm"
package Module::Install;
-use 5.004;
-$VERSION = '0.46';
+use 5.004;
+use strict 'vars';
+use vars qw{$VERSION};
+BEGIN {
+ # Don't forget to update Module::Install::Admin too!
+ $VERSION = '0.52';
+}
-die << "." unless $INC{join('/', inc => split(/::/, __PACKAGE__)).'.pm'};
+# inc::Module::Install must be loaded first
+unless ( $INC{join('/', inc => split(/::/, __PACKAGE__)).'.pm'} ) {
+ die <<"END_DIE";
Please invoke ${\__PACKAGE__} with:
use inc::${\__PACKAGE__};
@@ -13,28 +20,28 @@
use ${\__PACKAGE__};
-.
+END_DIE
+}
-use strict 'vars';
-use Cwd qw(cwd abs_path);
+use Cwd ();
use FindBin;
use File::Find ();
use File::Path ();
- at inc::Module::Install::ISA = 'Module::Install';
*inc::Module::Install::VERSION = *VERSION;
+ at inc::Module::Install::ISA = 'Module::Install';
sub autoload {
my $self = shift;
my $caller = $self->_caller;
-
- my $cwd = cwd();
- my $sym = "$caller\::AUTOLOAD";
+ my $cwd = Cwd::cwd();
+ my $sym = "$caller\::AUTOLOAD";
$sym->{$cwd} = sub {
- my $pwd = cwd();
- if (my $code = $sym->{$pwd}) {
- goto &$code unless $cwd eq $pwd; # delegate back to parent dirs
+ my $pwd = Cwd::cwd();
+ if ( my $code = $sym->{$pwd} ) {
+ # delegate back to parent dirs
+ goto &$code unless $cwd eq $pwd;
}
$$sym =~ /([^:]+)$/ or die "Cannot autoload $caller - $sym";
unshift @_, ($self, $1);
@@ -44,9 +51,9 @@
sub import {
my $class = shift;
- my $self = $class->new(@_);
+ my $self = $class->new(@_);
- if (not -f $self->{file}) {
+ unless ( -f $self->{file} ) {
require "$self->{path}/$self->{dispatch}.pm";
File::Path::mkpath("$self->{prefix}/$self->{author}");
$self->{admin} =
@@ -67,19 +74,20 @@
sub preload {
my ($self) = @_;
- $self->load_extensions(
- "$self->{prefix}/$self->{path}", $self
- ) unless $self->{extensions};
+ unless ( $self->{extentions} ) {
+ $self->load_extensions(
+ "$self->{prefix}/$self->{path}", $self
+ );
+ }
my @exts = @{$self->{extensions}};
-
- unless (@exts) {
+ unless ( @exts ) {
my $admin = $self->{admin};
@exts = $admin->load_all_extensions;
}
my %seen_method;
- foreach my $obj (@exts) {
+ foreach my $obj ( @exts ) {
while (my ($method, $glob) = each %{ref($obj) . '::'}) {
next unless defined *{$glob}{CODE};
next if $method =~ /^_/;
@@ -101,8 +109,10 @@
my ($class, %args) = @_;
# ignore the prefix on extension modules built from top level.
- my $base_path = abs_path($FindBin::Bin);
- delete $args{prefix} unless abs_path(cwd()) eq $base_path;
+ my $base_path = Cwd::abs_path($FindBin::Bin);
+ unless ( Cwd::abs_path(Cwd::cwd()) eq $base_path ) {
+ delete $args{prefix};
+ }
return $args{_self} if $args{_self};
@@ -145,10 +155,10 @@
return $obj if $obj->can($method);
}
- my $admin = $self->{admin} or die << "END";
+ my $admin = $self->{admin} or die <<"END_DIE";
The '$method' method does not exist in the '$self->{prefix}' path!
Please remove the '$self->{prefix}' directory and run $0 again to load it.
-END
+END_DIE
my $obj = $admin->load($method, 1);
push @{$self->{extensions}}, $obj;
@@ -169,7 +179,10 @@
local $@;
my $new = eval { require $file; $pkg->can('new') };
- if (!$new) { warn $@ if $@; next; }
+ unless ( $new ) {
+ warn $@ if $@;
+ next;
+ }
$self->{pathnames}{$pkg} = delete $INC{$file};
push @{$self->{extensions}}, &{$new}($pkg, _top => $top_obj );
}
@@ -179,23 +192,23 @@
sub find_extensions {
my ($self, $path) = @_;
- my @found;
- File::Find::find(sub {
+ my @found;
+ File::Find::find( sub {
my $file = $File::Find::name;
return unless $file =~ m!^\Q$path\E/(.+)\.pm\Z!is;
return if $1 eq $self->{dispatch};
$file = "$self->{path}/$1.pm";
my $pkg = "$self->{name}::$1"; $pkg =~ s!/!::!g;
- push @found, [$file, $pkg];
- }, $path) if -d $path;
+ push @found, [ $file, $pkg ];
+ }, $path ) if -d $path;
@found;
}
sub _caller {
- my $depth = 0;
+ my $depth = 0;
my $caller = caller($depth);
while ($caller eq __PACKAGE__) {
Modified: DBIx-SearchBuilder/trunk/inc/Module/Install/Base.pm
==============================================================================
--- DBIx-SearchBuilder/trunk/inc/Module/Install/Base.pm (original)
+++ DBIx-SearchBuilder/trunk/inc/Module/Install/Base.pm Thu Feb 16 19:29:49 2006
@@ -4,7 +4,7 @@
# Suspend handler for "redefined" warnings
BEGIN { my $w = $SIG{__WARN__}; $SIG{__WARN__} = sub { $w } };
-#line 31
+#line 30
sub new {
my ($class, %args) = @_;
@@ -18,18 +18,21 @@
bless(\%args, $class);
}
-#line 49
+#line 48
sub AUTOLOAD {
my $self = shift;
- goto &{$self->_top->autoload};
+
+ local $@;
+ my $autoload = eval { $self->_top->autoload } or return;
+ goto &$autoload;
}
-#line 60
+#line 62
sub _top { $_[0]->{_top} }
-#line 71
+#line 73
sub admin {
my $self = shift;
@@ -57,4 +60,4 @@
__END__
-#line 118
+#line 120
Modified: DBIx-SearchBuilder/trunk/inc/Module/Install/Include.pm
==============================================================================
--- DBIx-SearchBuilder/trunk/inc/Module/Install/Include.pm (original)
+++ DBIx-SearchBuilder/trunk/inc/Module/Install/Include.pm Thu Feb 16 19:29:49 2006
@@ -6,5 +6,5 @@
sub include_deps { +shift->admin->include_deps(@_) };
sub auto_include { +shift->admin->auto_include(@_) };
sub auto_include_deps { +shift->admin->auto_include_deps(@_) };
-
+sub auto_include_dependent_dists { +shift->admin->auto_include_dependent_dists(@_) }
1;
Modified: DBIx-SearchBuilder/trunk/inc/Module/Install/Makefile.pm
==============================================================================
--- DBIx-SearchBuilder/trunk/inc/Module/Install/Makefile.pm (original)
+++ DBIx-SearchBuilder/trunk/inc/Module/Install/Makefile.pm Thu Feb 16 19:29:49 2006
@@ -65,14 +65,14 @@
$args->{test} = {TESTS => $self->tests} if $self->tests;
if ($] >= 5.005) {
- $args->{ABSTRACT} = $self->abstract;
- $args->{AUTHOR} = $self->author;
+ $args->{ABSTRACT} = $self->abstract;
+ $args->{AUTHOR} = $self->author;
}
if ( eval($ExtUtils::MakeMaker::VERSION) >= 6.10 ) {
$args->{NO_META} = 1;
}
if ( eval($ExtUtils::MakeMaker::VERSION) > 6.17 ) {
- $args->{SIGN} = 1 if $self->sign;
+ $args->{SIGN} = 1 if $self->sign;
}
delete $args->{SIGN} unless $self->is_admin;
@@ -154,4 +154,4 @@
__END__
-#line 287
+#line 286
Modified: DBIx-SearchBuilder/trunk/inc/Module/Install/Metadata.pm
==============================================================================
--- DBIx-SearchBuilder/trunk/inc/Module/Install/Metadata.pm (original)
+++ DBIx-SearchBuilder/trunk/inc/Module/Install/Metadata.pm Thu Feb 16 19:29:49 2006
@@ -1,42 +1,41 @@
#line 1 "inc/Module/Install/Metadata.pm - /usr/local/share/perl/5.8.7/Module/Install/Metadata.pm"
package Module::Install::Metadata;
-use Module::Install::Base;
- at ISA = qw(Module::Install::Base);
-
-$VERSION = '0.04';
use strict 'vars';
-use vars qw($VERSION);
+use Module::Install::Base;
-sub Meta { shift }
+use vars qw($VERSION @ISA);
+BEGIN {
+ $VERSION = '0.06';
+ @ISA = 'Module::Install::Base';
+}
-my @scalar_keys = qw<
- name module_name version abstract author license
+my @scalar_keys = qw{
+ name module_name abstract author version license
distribution_type perl_version tests
->;
-my @tuple_keys = qw<
+};
+
+my @tuple_keys = qw{
build_requires requires recommends bundles
->;
+};
+
+sub Meta { shift }
+sub Meta_ScalarKeys { @scalar_keys }
+sub Meta_TupleKeys { @tuple_keys }
foreach my $key (@scalar_keys) {
*$key = sub {
my $self = shift;
- return $self->{'values'}{$key} unless @_;
- $self->{'values'}{$key} = shift;
+ return $self->{values}{$key} if defined wantarray and !@_;
+ $self->{values}{$key} = shift;
return $self;
};
}
-sub sign {
- my $self = shift;
- $self->{'values'}{'sign'} = ( @_ ? $_[0] : 1 );
- return $self;
-}
-
foreach my $key (@tuple_keys) {
*$key = sub {
my $self = shift;
- return $self->{'values'}{$key} unless @_;
+ return $self->{values}{$key} unless @_;
my @rv;
while (@_) {
@@ -51,14 +50,29 @@
my $rv = [ $module, $version ];
push @rv, $rv;
}
- push @{ $self->{'values'}{$key} }, @rv;
+ push @{ $self->{values}{$key} }, @rv;
@rv;
};
}
+sub sign {
+ my $self = shift;
+ return $self->{'values'}{'sign'} if defined wantarray and !@_;
+ $self->{'values'}{'sign'} = ( @_ ? $_[0] : 1 );
+ return $self;
+}
+
sub all_from {
my ( $self, $file ) = @_;
+ unless ( defined($file) ) {
+ my $name = $self->name
+ or die "all_from called with no args without setting name() first";
+ $file = join('/', 'lib', split(/-/, $name)) . '.pm';
+ $file =~ s{.*/}{} unless -e $file;
+ die "all_from: cannot find $file from $name" unless -e $file;
+ }
+
$self->version_from($file) unless $self->version;
$self->perl_version_from($file) unless $self->perl_version;
@@ -76,7 +90,7 @@
sub provides {
my $self = shift;
- my $provides = ( $self->{'values'}{'provides'} ||= {} );
+ my $provides = ( $self->{values}{provides} ||= {} );
%$provides = (%$provides, @_) if @_;
return $provides;
}
@@ -90,6 +104,12 @@
return $self;
}
+ # Avoid spurious warnings as we are not checking manifest here.
+
+ local $SIG{__WARN__} = sub {1};
+ require ExtUtils::Manifest;
+ local *ExtUtils::Manifest::manicheck = sub { return };
+
require Module::Build;
my $build = Module::Build->new(
dist_name => $self->{name},
@@ -102,7 +122,7 @@
sub feature {
my $self = shift;
my $name = shift;
- my $features = ( $self->{'values'}{'features'} ||= [] );
+ my $features = ( $self->{values}{features} ||= [] );
my $mods;
@@ -134,84 +154,14 @@
while ( my ( $name, $mods ) = splice( @_, 0, 2 ) ) {
$self->feature( $name, @$mods );
}
- return @{ $self->{'values'}{'features'} };
+ return @{ $self->{values}{features} };
}
sub no_index {
my $self = shift;
my $type = shift;
- push @{ $self->{'values'}{'no_index'}{$type} }, @_ if $type;
- return $self->{'values'}{'no_index'};
-}
-
-sub _dump {
- my $self = shift;
- my $package = ref( $self->_top );
- my $version = $self->_top->VERSION;
- my %values = %{ $self->{'values'} };
-
- delete $values{sign};
- if ( my $perl_version = delete $values{perl_version} ) {
-
- # Always canonical to three-dot version
- $perl_version =~
- s{^(\d+)\.(\d\d\d)(\d*)}{join('.', $1, int($2), int($3))}e
- if $perl_version >= 5.006;
- $values{requires} =
- [ [ perl => $perl_version ], @{ $values{requires} || [] }, ];
- }
-
- warn "No license specified, setting license = 'unknown'\n"
- unless $values{license};
-
- $values{license} ||= 'unknown';
- $values{distribution_type} ||= 'module';
- $values{name} ||= do {
- my $name = $values{module_name};
- $name =~ s/::/-/g;
- $name;
- } if $values{module_name};
-
- if ( $values{name} =~ /::/ ) {
- my $name = $values{name};
- $name =~ s/::/-/g;
- die "Error in name(): '$values{name}' should be '$name'!\n";
- }
-
- my $dump = '';
- foreach my $key (@scalar_keys) {
- $dump .= "$key: $values{$key}\n" if exists $values{$key};
- }
- foreach my $key (@tuple_keys) {
- next unless exists $values{$key};
- $dump .= "$key:\n";
- foreach ( @{ $values{$key} } ) {
- $dump .= " $_->[0]: $_->[1]\n";
- }
- }
-
- if ( my $provides = $values{provides} ) {
- require YAML;
- local $YAML::UseHeader = 0;
- $dump .= YAML::Dump( { provides => $provides } );
- }
-
- if ( my $no_index = $values{no_index} ) {
- push @{ $no_index->{'directory'} }, 'inc';
- require YAML;
- local $YAML::UseHeader = 0;
- $dump .= YAML::Dump( { no_index => $no_index } );
- }
- else {
- $dump .= << "META";
-no_index:
- directory:
- - inc
-META
- }
-
- $dump .= "generated_by: $package version $version\n";
- return $dump;
+ push @{ $self->{values}{no_index}{$type} }, @_ if $type;
+ return $self->{values}{no_index};
}
sub read {
@@ -239,24 +189,7 @@
sub write {
my $self = shift;
return $self unless $self->is_admin;
-
- META_NOT_OURS: {
- local *FH;
- if ( open FH, "META.yml" ) {
- while (<FH>) {
- last META_NOT_OURS if /^generated_by: Module::Install\b/;
- }
- return $self if -s FH;
- }
- }
-
- print "Writing META.yml\n";
-
- local *META;
- open META, "> META.yml" or warn "Cannot write to META.yml: $!";
- print META $self->_dump;
- close META;
-
+ $self->admin->write_meta;
return $self;
}
@@ -270,8 +203,11 @@
my ( $self, $file ) = @_;
require ExtUtils::MM_Unix;
$self->abstract(
- bless( { DISTNAME => $self->name }, 'ExtUtils::MM_Unix' )
- ->parse_abstract($file) );
+ bless(
+ { DISTNAME => $self->name },
+ 'ExtUtils::MM_Unix'
+ )->parse_abstract($file)
+ );
}
sub _slurp {
More information about the Rt-commit
mailing list