]> Dogcows Code - chaz/p5-DBIx-Class-ResultSet-RecursiveUpdate/blobdiff - lib/DBIx/Class/ResultSet/RecursiveUpdate.pm
using _resolve_condition
[chaz/p5-DBIx-Class-ResultSet-RecursiveUpdate] / lib / DBIx / Class / ResultSet / RecursiveUpdate.pm
index f288135edd9f2bf01838c142aa3f85d02990ed5f..b4ba9b8f57e630d76c8e947229279911cd525976 100644 (file)
@@ -2,7 +2,7 @@ use strict;
 use warnings;
 package DBIx::Class::ResultSet::RecursiveUpdate;
 
-use version; our $VERSION = qv('0.005');
+use version; our $VERSION = qv('0.008');
 
 use base qw(DBIx::Class::ResultSet);
 
@@ -117,11 +117,14 @@ sub recursive_update {
             my @rows;
             my $result_source = $object->$name->result_source;
             my @updates;
-            if( ref $updates->{$name} ){
-                @updates = @{ $updates->{$name} };
+            if( ! defined $value ){
+                next;
+            }
+            elsif( ref $value ){
+                @updates = @{ $value };
             }
             else{
-                @updates = ( $updates->{$name} );
+                @updates = ( $value );
             }
             for my $elem ( @updates ) {
                 if ( ref $elem ) {
@@ -159,8 +162,13 @@ sub _update_relation {
     my ( $self, $name, $updates, $object, $info ) = @_;
     my $related_result =
       $self->related_resultset($name)->result_source->resultset;
-    my $resolved =
-      $self->result_source->resolve_condition( $info->{cond}, $name, $object );
+    my $resolved;
+    if( $self->result_source->can( '_resolve_condition' ) ){
+        $resolved = $self->result_source->_resolve_condition( $info->{cond}, $name, $object );
+    }
+    else{
+        $resolved = $self->result_source->resolve_condition( $info->{cond}, $name, $object );
+    }
 
  #                    warn 'resolved: ' . Dumper( $resolved ); use Data::Dumper;
     $resolved = undef
@@ -295,7 +303,7 @@ DBIx::Class::ResultSet::RecursiveUpdate - like update_or_create - but recursive
 
 =head1 VERSION
 
-This document describes DBIx::Class::ResultSet::RecursiveUpdate version 0.004
+This document describes DBIx::Class::ResultSet::RecursiveUpdate version 0.006
 
 
 =head1 SYNOPSIS
@@ -303,14 +311,16 @@ This document describes DBIx::Class::ResultSet::RecursiveUpdate version 0.004
 The functional interface:
 
     my $new_item = DBIx::Class::ResultSet::RecursiveUpdate::Functions::recursive_update({ 
-        id => 1, 
-        owned_dvds => [ 
-        { 
-          title => 'One Flew Over the Cuckoo's Nest' 
-        } 
-        ] 
-      }
-    );
+        resultset => $schema->resultset( 'Dvd' ),
+        updates => {
+            id => 1, 
+            owned_dvds => [ 
+                { 
+                  title => 'One Flew Over the Cuckoo's Nest' 
+                } 
+            ] 
+        }
+    });
 
 
 As ResultSet subclass:
This page took 0.019583 seconds and 4 git commands to generate.