X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fp5-DBIx-Class-ResultSet-RecursiveUpdate;a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FResultSet%2FRecursiveUpdate.pm;h=b4ba9b8f57e630d76c8e947229279911cd525976;hp=69f46ef2aeba79ec7993f0842834da2f5b9a5d98;hb=f8d97e749df641d0da641007bc6fda336defe71d;hpb=59fe4614bbb79b21afad138da2c90b186611c2fd diff --git a/lib/DBIx/Class/ResultSet/RecursiveUpdate.pm b/lib/DBIx/Class/ResultSet/RecursiveUpdate.pm index 69f46ef..b4ba9b8 100644 --- a/lib/DBIx/Class/ResultSet/RecursiveUpdate.pm +++ b/lib/DBIx/Class/ResultSet/RecursiveUpdate.pm @@ -2,7 +2,7 @@ use strict; use warnings; package DBIx::Class::ResultSet::RecursiveUpdate; -use version; our $VERSION = qv('0.006'); +use version; our $VERSION = qv('0.008'); use base qw(DBIx::Class::ResultSet); @@ -162,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 @@ -306,14 +311,16 @@ This document describes DBIx::Class::ResultSet::RecursiveUpdate version 0.006 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: