__PACKAGE__->mk_classdata($_) for qw/actions tree/;
-# These are the core structures
-__PACKAGE__->actions(
- { plain => {}, private => {}, regex => {}, compiled => [], reverse => {} }
-);
-
-# We use a tree
-__PACKAGE__->tree( Tree::Simple->new( 0, Tree::Simple->ROOT ) );
-
=head1 NAME
Catalyst::Dispatcher - The Catalyst Dispatcher
}
# Execute the auto chain
- my $auto;
- for $auto ( @{ $c->get_action( 'auto', $namespace, 1 ) } ) {
+ my $autorun = 0;
+ for my $auto ( @{ $c->get_action( 'auto', $namespace, 1 ) } ) {
+ $autorun++;
$c->execute( @{ $auto->[0] } );
return if scalar @{ $c->error };
last unless $c->state;
}
# Execute the action or last default
- my $mkay = defined $auto ? $c->state ? 1 : 0 : 1;
+ my $mkay = $autorun ? $c->state ? 1 : 0 : 1;
if ( ( my $action = $c->req->action ) && $mkay ) {
if ( my $result = @{ $c->get_action( $action, $default, 1 ) }[-1] )
{
my %flags;
for my $attr ( @{$attrs} ) {
- if ( $attr =~ /^(Local|Relative)$/ ) { $flags{local}++ }
- elsif ( $attr =~ /^(Global|Absolute)$/ ) { $flags{global}++ }
- elsif ( $attr =~ /^Path\((.+)\)$/i ) { $flags{path} = $1 }
- elsif ( $attr =~ /^Private$/i ) { $flags{private}++ }
- elsif ( $attr =~ /^(Regex|Regexp)\((.+)\)$/i ) { $flags{regex} = $2 }
+ if ( $attr =~ /^(Local|Relative)$/ ) { $flags{local}++ }
+ elsif ( $attr =~ /^(Global|Absolute)$/ ) { $flags{global}++ }
+ elsif ( $attr =~ /^Path\(\s*(.+)\s*\)$/i ) { $flags{path} = $1 }
+ elsif ( $attr =~ /^Private$/i ) { $flags{private}++ }
+ elsif ( $attr =~ /^(Regex|Regexp)\(\s*(.+)\s*\)$/i ) {
+ $flags{regex} = $2;
+ }
}
if ( $flags{private} && ( keys %flags > 1 ) ) {
sub setup_actions {
my ( $self, $comps ) = @_;
+ # These are the core structures
+ $self->actions(
+ {
+ plain => {},
+ private => {},
+ regex => {},
+ compiled => [],
+ reverse => {}
+ }
+ );
+
+ # We use a tree
+ $self->tree( Tree::Simple->new( 0, Tree::Simple->ROOT ) );
+
for my $comp (@$comps) {
$comp = ref $comp || $comp;