[Jifty-commit] r7292 - Jifty-DBI/trunk/lib/Jifty/DBI

Jifty commits jifty-commit at lists.jifty.org
Fri Jul 3 17:19:47 EDT 2009


Author: alexmv
Date: Fri Jul  3 17:19:46 2009
New Revision: 7292

Modified:
   Jifty-DBI/trunk/lib/Jifty/DBI/Collection.pm

Log:
Avoid calls to ->new_item when possible

Modified: Jifty-DBI/trunk/lib/Jifty/DBI/Collection.pm
==============================================================================
--- Jifty-DBI/trunk/lib/Jifty/DBI/Collection.pm	(original)
+++ Jifty-DBI/trunk/lib/Jifty/DBI/Collection.pm	Fri Jul  3 17:19:46 2009
@@ -117,7 +117,7 @@
     );
     $self->_handle( $args{'handle'} )  if ( $args{'handle'} );
     $self->derived( $args{'derived'} ) if ( $args{'derived'} );
-    $self->table( $self->new_item->table() );
+    $self->table( $self->record_class->table() );
     $self->clean_slate(%args);
 }
 
@@ -495,7 +495,7 @@
     if ( $self->{columns} and @{ $self->{columns} } ) {
         push @cols, @{ $self->{columns} };
     } else {
-        push @cols, $self->_qualified_record_columns( 'main' => $self->new_item );
+        push @cols, $self->_qualified_record_columns( 'main' => $self->record_class );
     }
     my %prefetch_related = %{ $self->prefetch_related || {} };
     foreach my $alias ( keys %prefetch_related ) {
@@ -503,9 +503,9 @@
 
         my $reference;
         if ( $class->isa('Jifty::DBI::Collection') ) {
-            $reference = $class->new( $self->_new_collection_args )->new_item;
+            $reference = $class->record_class;
         } elsif ( $class->isa('Jifty::DBI::Record') ) {
-            $reference = $class->new( $self->_new_record_args );
+            $reference = $class;
         }
 
         push @cols, $self->_qualified_record_columns( $alias => $reference );
@@ -623,7 +623,7 @@
     if ( not $args{class} ) {
 
         # Check the column
-        my $column = $self->new_item->column( $args{name} );
+        my $column = $self->record_class->column( $args{name} );
         $args{class} = $column->refers_to if $column;
 
         die "Don't know class" unless $args{class};
@@ -662,7 +662,7 @@
 
     my $last = pop @names;
     my ( $class, @columns ) = $self->find_class(@names);
-    $class = $class->new_item
+    $class = $class->record_class
         if UNIVERSAL::isa( $class, "Jifty::DBI::Collection" );
     my $column = $class->column($last);
     die "$class has no column '$last'" unless $column;
@@ -684,23 +684,24 @@
 
     my @res;
     my $object = $self;
-    my $item   = $self->new_item;
+    my $itemclass = $self->record_class;
     while ( my $name = shift @names ) {
-        my $column = $item->column($name);
-        die "$item has no column '$name'" unless $column;
+        my $column = $itemclass->column($name);
+        die "$itemclass has no column '$name'" unless $column;
 
         push @res, $column;
 
         my $classname = $column->refers_to;
         unless ($classname) {
-            die "column '$name' of $item is not a reference";
+            die "column '$name' of $itemclass is not a reference";
         }
 
         if ( UNIVERSAL::isa( $classname, 'Jifty::DBI::Collection' ) ) {
             $object = $classname->new( $self->_new_collection_args );
-            $item   = $object->new_item;
+            $itemclass = $object->record_class;
         } elsif ( UNIVERSAL::isa( $classname, 'Jifty::DBI::Record' ) ) {
-            $object = $item = $classname->new( $self->_new_record_args );
+            $object = $classname->new( $self->_new_record_args );
+            $itemclass = $classname;
         } else {
             die
                 "Column '$name' refers to '$classname' which is not record or collection";
@@ -733,9 +734,7 @@
         }
 
         if ( UNIVERSAL::isa( $classname, 'Jifty::DBI::Collection' ) ) {
-            my $item
-                = $classname->new( $self->_new_collection_args )->new_item;
-            my $right_alias = $self->new_alias($item);
+            my $right_alias = $self->new_alias($classname->record_class);
             $self->join(
                 type        => 'left',
                 alias1      => $last_alias,
@@ -746,8 +745,7 @@
             );
             $last_alias = $right_alias;
         } elsif ( UNIVERSAL::isa( $classname, 'Jifty::DBI::Record' ) ) {
-            my $item        = $classname->new( $self->_new_record_args );
-            my $right_alias = $self->new_alias($item);
+            my $right_alias = $self->new_alias($classname);
             $self->join(
                 type        => 'left',
                 alias1      => $last_alias,
@@ -1219,7 +1217,7 @@
         ? $self->{joins}{ $args{alias} }{class}
         ->new( $self->_new_collection_args )
         : $self;
-    my $column_obj = $class->new_item()->column( $args{column} );
+    my $column_obj = $class->record_class->column( $args{column} );
 
     $self->new_item->_apply_input_filters(
         column    => $column_obj,


More information about the Jifty-commit mailing list