X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FDispatcher.pm;h=0fe6c32a337907ea923826049972e621bcaed856;hb=784ab0e42f27feccdf30543d909352ae8657cbeb;hp=44e5afe9edf562e3c14713664594949e967b75da;hpb=f3d0bbcf1bcf247e803f2229c0693114cc3a9170;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Dispatcher.pm b/lib/Catalyst/Dispatcher.pm index 44e5afe..0fe6c32 100644 --- a/lib/Catalyst/Dispatcher.pm +++ b/lib/Catalyst/Dispatcher.pm @@ -20,6 +20,9 @@ __PACKAGE__->mk_accessors(qw/tree dispatch_types/); # Preload these action types our @PRELOAD = qw/Path Regex/; +# Postload these action types +our @POSTLOAD = qw/Index Default/; + =head1 NAME Catalyst::Dispatcher - The Catalyst Dispatcher @@ -468,9 +471,14 @@ sub setup_actions { } } - # Default actions are always last in the chain - push @{ $self->dispatch_types }, Catalyst::DispatchType::Index->new; - push @{ $self->dispatch_types }, Catalyst::DispatchType::Default->new; + # Postload action types + for my $type (@POSTLOAD) { + my $class = "Catalyst::DispatchType::$type"; + eval "require $class"; + Catalyst::Exception->throw( message => qq/Couldn't load "$class"/ ) + if $@; + push @{ $self->dispatch_types }, $class->new; + } return unless $class->debug;