X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FRelationship%2FManyToMany.pm;h=e715f10e45e6f8ca6d2588e3f505a02dac214ce4;hb=09d8fb4a;hp=fdd46972ca1d0f6f5320a6c14a822ddc966ba637;hpb=12e7015aa9372aeaf1aaa7e125b8ac8da216deb5;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Relationship/ManyToMany.pm b/lib/DBIx/Class/Relationship/ManyToMany.pm index fdd4697..e715f10 100644 --- a/lib/DBIx/Class/Relationship/ManyToMany.pm +++ b/lib/DBIx/Class/Relationship/ManyToMany.pm @@ -60,6 +60,10 @@ EOW {}, { attributes => [ 'DBIC_method_is_indirect_sugar', + ( keys( %{$rel_attrs||{}} ) + ? 'DBIC_method_is_m2m_sugar_with_attrs' + : 'DBIC_method_is_m2m_sugar' + ), ] }, ); @@ -82,6 +86,10 @@ EOC }, { attributes => [ 'DBIC_method_is_indirect_sugar', + ( keys( %{$rel_attrs||{}} ) + ? 'DBIC_method_is_m2m_extra_sugar_with_attrs' + : 'DBIC_method_is_m2m_extra_sugar' + ), ] }, ); @@ -206,6 +214,11 @@ EOC $guard->commit if $guard; EOC + + # the last method needs no captures - just kill it all with fire + $extra_meth_qsub_args[0] = {}; + + quote_sub "${class}::${remove_meth}", sprintf( <<'EOC', $remove_meth, $rel, $f_rel ), @extra_meth_qsub_args; $_[0]->throw_exception("'%1$s' expects an object")