extends qw(Catalyst::Action);
has chain => (is => 'rw');
-
no Moose;
=head1 NAME
my $last = pop(@chain);
foreach my $action ( @chain ) {
my @args;
- if (my $cap = $action->attributes->{CaptureArgs}) {
- @args = splice(@captures, 0, $cap->[0]);
+ if (my $cap = $action->number_of_captures) {
+ @args = splice(@captures, 0, $cap);
}
local $c->request->{arguments} = \@args;
$action->dispatch( $c );
return $self->new({ %$final, chain => $actions });
}
+sub number_of_captures {
+ my ( $self ) = @_;
+ my $chain = $self->chain;
+ my $captures = 0;
+
+ $captures += $_->number_of_captures for @$chain;
+ return $captures;
+}
+
__PACKAGE__->meta->make_immutable;
1;
Takes a list of Catalyst::Action objects and constructs and returns a
Catalyst::ActionChain object representing a chain of these actions
+=head2 number_of_captures
+
+Returns the total number of captures for the entire chain of actions.
+
=head2 meta
Provided by Moose
-=head1 AUTHOR
+=head1 AUTHORS
-Matt S. Trout
+Catalyst Contributors, see Catalyst.pm
=head1 COPYRIGHT
-This program is free software, you can redistribute it and/or modify it under
+This library is free software. You can redistribute it and/or modify it under
the same terms as Perl itself.
=cut