__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] )
{
=cut
sub setup_actions {
- my ( $self, $comps ) = @_;
+ my $self = shift;
+
+ # These are the core structures
+ $self->actions(
+ {
+ plain => {},
+ private => {},
+ regex => {},
+ compiled => [],
+ reverse => {}
+ }
+ );
- for my $comp (@$comps) {
- $comp = ref $comp || $comp;
+ # We use a tree
+ $self->tree( Tree::Simple->new( 0, Tree::Simple->ROOT ) );
+
+ for my $comp ( keys %{ $self->components } ) {
+
+ # We only setup components that inherit from Catalyst::Base
+ next unless $comp->isa('Catalyst::Base');
for my $action ( @{ Catalyst::Utils::reflect_actions($comp) } ) {
my ( $code, $attrs ) = @{$action};
}
}
+
+ return unless $self->debug;
my $actions = $self->actions;
my $privates = Text::ASCIITable->new;
$walker->( $walker, $self->tree, '' );
$self->log->debug( 'Loaded private actions', $privates->draw )
- if ( @{ $privates->{tbl_rows} } && $self->debug );
+ if ( @{ $privates->{tbl_rows} } );
my $publics = Text::ASCIITable->new;
$publics->setCols( 'Public', 'Private' );
}
$self->log->debug( 'Loaded public actions', $publics->draw )
- if ( @{ $publics->{tbl_rows} } && $self->debug );
+ if ( @{ $publics->{tbl_rows} } );
my $regexes = Text::ASCIITable->new;
$regexes->setCols( 'Regex', 'Private' );
}
$self->log->debug( 'Loaded regex actions', $regexes->draw )
- if ( @{ $regexes->{tbl_rows} } && $self->debug );
+ if ( @{ $regexes->{tbl_rows} } );
}
=back