return 0;
}
+ $action = $self->expand_action($action);
+
local $c->request->{arguments} = $args;
$c->namespace($action->namespace);
$c->action($action);
no warnings 'recursion';
my $orig_args = $c->request->arguments();
- $c->request->arguments(\@args);
+ $c->request->arguments($args);
$action->dispatch( $c );
$c->request->arguments($orig_args);
return undef;
}
+sub expand_action {
+ my ($self, $action) = @_;
+
+ foreach my $dispatch_type (@{ $self->_dispatch_types }) {
+ my $expanded = $dispatch_type->expand_action($action);
+ return $expanded if $expanded;
+ }
+
+ return $action;
+}
+
=head2 $self->register( $c, $action )
Make sure all required dispatch types for this action are loaded, then