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=137bf7d217d9f1f049f373aa7fbccc588d3b8e04;hp=f288135edd9f2bf01838c142aa3f85d02990ed5f;hb=e24030dfa5f8035038af8c0b4ca40299fa52699c;hpb=34a44681170dc8a76ec09b1d655ed2c6d1d28e49 diff --git a/lib/DBIx/Class/ResultSet/RecursiveUpdate.pm b/lib/DBIx/Class/ResultSet/RecursiveUpdate.pm index f288135..137bf7d 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.005'); +use version; our $VERSION = qv('0.006'); 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 ) { @@ -295,7 +298,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 +306,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: