Merge 'DBIx-Class-current' into 'bulk_create'
Jess Robinson [Tue, 8 May 2007 20:08:06 +0000 (20:08 +0000)]
r3267@lilith (orig r3265):  ash | 2007-05-08 20:35:36 +0100
Unbreak back-compat
r3268@lilith (orig r3266):  ash | 2007-05-08 20:41:38 +0100
Move -result_source handling further up

lib/DBIx/Class/ResultSet.pm
lib/DBIx/Class/Row.pm

index ae3ab90..883e190 100644 (file)
@@ -1264,9 +1264,10 @@ sub new_result {
   my %new = (
     %{ $self->_remove_alias($values, $alias) },
     %{ $self->_remove_alias($collapsed_cond, $alias) },
+    -source_handle => $self->_source_handle
   );
 
-  return $self->result_class->new(\%new,$self->_source_handle);
+  return $self->result_class->new(\%new);
 }
 
 # _collapse_cond
index 52e0ffe..5b9a3b9 100644 (file)
@@ -44,13 +44,18 @@ passed objects.
 ## tests!
 
 sub new {
-  my ($class, $attrs, $source) = @_;
+  my ($class, $attrs) = @_;
   $class = ref $class if ref $class;
 
   my $new = { _column_data => {} };
   bless $new, $class;
 
-  $new->_source_handle($source) if $source;
+  if (my $handle = delete $attrs->{-source_handle}) {
+    $new->_source_handle($handle);
+  }
+  if (my $source = delete $attrs->{-result_source}) {
+    $new->result_source($source);
+  }
 
   if ($attrs) {
     $new->throw_exception("attrs must be a hashref")
@@ -108,9 +113,6 @@ sub new {
         unless $class->has_column($key);
       $new->store_column($key => $attrs->{$key});          
     }
-    if (my $source = delete $attrs->{-result_source}) {
-      $new->result_source($source);
-    }
 
     $new->{_relationship_data} = $related if $related;
     $new->{_inflated_column} = $inflated if $inflated;