X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst%2FDispatchType%2FChained.pm;h=c22604bfbf35e56f27caccb3a6d120785f33bf4e;hp=f7af2b2cd07ae179bc7ced885cff01fb910f9781;hb=8b13f357b71297872a61f142ae62c2e60fda304d;hpb=67869327e1bf1a4855724d732ce28c089340afe5 diff --git a/lib/Catalyst/DispatchType/Chained.pm b/lib/Catalyst/DispatchType/Chained.pm index f7af2b2..c22604b 100644 --- a/lib/Catalyst/DispatchType/Chained.pm +++ b/lib/Catalyst/DispatchType/Chained.pm @@ -244,7 +244,7 @@ sub uri_for_action { my ( $self, $action, $captures ) = @_; return undef unless ($action->attributes->{Chained} - && $action->attributes->{Args}); + && !$action->attributes->{CaptureArgs}); my @parts = (); my @captures = @$captures; @@ -253,11 +253,13 @@ sub uri_for_action { while ($curr) { if (my $cap = $curr->attributes->{CaptureArgs}) { return undef unless @captures >= $cap->[0]; # not enough captures - unshift(@parts, splice(@captures, -$cap->[0])); + if ($cap->[0]) { + unshift(@parts, splice(@captures, -$cap->[0])); + } } if (my $pp = $curr->attributes->{PartPath}) { unshift(@parts, $pp->[0]) - if (defined $pp->[0] && length $pp->[0]); + if (defined($pp->[0]) && length($pp->[0])); } $parent = $curr->attributes->{Chained}->[0]; $curr = $self->{actions}{$parent};