[Bast-commits] r3531 - trunk/DBIx-Class/lib/DBIx/Class/Relationship

purge at dev.catalyst.perl.org purge at dev.catalyst.perl.org
Tue Jun 26 21:03:48 GMT 2007


Author: purge
Date: 2007-06-26 21:03:47 +0100 (Tue, 26 Jun 2007)
New Revision: 3531

Modified:
   trunk/DBIx-Class/lib/DBIx/Class/Relationship/ManyToMany.pm
Log:
many_to_many supports relation_rs method now

Modified: trunk/DBIx-Class/lib/DBIx/Class/Relationship/ManyToMany.pm
===================================================================
--- trunk/DBIx-Class/lib/DBIx/Class/Relationship/ManyToMany.pm	2007-06-26 19:19:08 UTC (rev 3530)
+++ trunk/DBIx-Class/lib/DBIx/Class/Relationship/ManyToMany.pm	2007-06-26 20:03:47 UTC (rev 3531)
@@ -22,18 +22,26 @@
     my $add_meth = "add_to_${meth}";
     my $remove_meth = "remove_from_${meth}";
     my $set_meth = "set_${meth}";
+    my $rs_meth = "${meth}_rs";
 
     $rel_attrs->{alias} ||= $f_rel;
 
-    *{"${class}::${meth}"} = sub {
+    *{"${class}::${meth}_rs"} = sub {
       my $self = shift;
       my $attrs = @_ > 1 && ref $_[$#_] eq 'HASH' ? pop(@_) : {};
       my @args = ($f_rel, @_ > 0 ? @_ : undef, { %{$rel_attrs||{}}, %$attrs });
-      $self->search_related($rel)->search_related(
+      my $rs = $self->search_related($rel)->search_related(
         $f_rel, @_ > 0 ? @_ : undef, { %{$rel_attrs||{}}, %$attrs }
       );
+	  return $rs;
     };
 
+	*{"${class}::${meth}"} = sub {
+		my $self = shift;
+		my $rs = $self->$rs_meth( @_ );
+  		return (wantarray ? $rs->all : $rs);
+	};
+
     *{"${class}::${add_meth}"} = sub {
       my $self = shift;
       @_ > 0 or $self->throw_exception(




More information about the Bast-commits mailing list