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;fp=lib%2FCatalyst%2FDispatchType%2FChained.pm;h=6705833e5737f78297da367ccaf10cef90b3e71c;hp=b9d6d07a07a102d32b4e9c2a3585ab13948cdc47;hb=2a1c08c07e5a7fe716d5bfe897e5b27fc179300a;hpb=4028c19ded1cd3ca30449eea739ca89ebf34a220 diff --git a/lib/Catalyst/DispatchType/Chained.pm b/lib/Catalyst/DispatchType/Chained.pm index b9d6d07..6705833 100644 --- a/lib/Catalyst/DispatchType/Chained.pm +++ b/lib/Catalyst/DispatchType/Chained.pm @@ -290,6 +290,7 @@ sub recurse_match { next TRY_ACTION unless $action->match($c); } my $args_attr = $action->attributes->{Args}->[0]; + my $args_count = $action->normalized_arg_number; my @pathparts = split /\//, $action->attributes->{PathPart}->[0]; # No best action currently # OR This one matches with fewer parts left than the current best action, @@ -305,12 +306,12 @@ sub recurse_match { !@parts && defined($args_attr) && ( - $args_attr eq "0" && + $args_count eq "0" && ( ($c->config->{use_chained_args_0_special_case}||0) || ( - exists($best_action->{args_attr}) && defined($best_action->{args_attr}) ? - ($best_action->{args_attr} ne 0) : 1 + exists($best_action->{args_count}) && defined($best_action->{args_count}) ? + ($best_action->{args_count} ne 0) : 1 ) ) ) @@ -320,7 +321,7 @@ sub recurse_match { actions => [ $action ], captures=> [], parts => \@parts, - args_attr => $args_attr, + args_count => $args_count, n_pathparts => scalar(@pathparts), }; }