__PACKAGE__->response_class('Catalyst::Response');
__PACKAGE__->stats_class('Catalyst::Stats');
-# This is here as but we need to be able to call# C::C->action_class, which
-# calls the ->_action_class attribute's accessor to get the default action
-# class for this controller. As the app class is also a controller (eww, warns)
-# but we don't have an instance (just the component name) in the registery,
-# we override _action_class here so that $class->_action_class doesn't explode
-# (so it becomes class data rather than instance data for this one special case).
-# This is a gross back compat hack which can go away for app/ctx split.
-__PACKAGE__->mk_classdata(qw/ _action_class /);
-__PACKAGE__->_action_class('Catalyst::Action');
-
# Remember to update this in Catalyst::Runtime as well!
+
our $VERSION = '5.80024';
sub import {
# Add our self to components, since we are also a component
if( $class->isa('Catalyst::Controller') ){
- $class->components->{$class} = $class; # HATEFUL SPECIAL CASE
+ $class->components->{$class} = $class;
}
$class->setup_actions;
$c->log_response;
if ($c->use_stats) {
- my $elapsed = $c->stats->elapsed;
+ my $elapsed = sprintf '%f', $c->stats->elapsed;
my $av = $elapsed == 0 ? '??' : sprintf '%.3f', 1 / $elapsed;
$c->log->info(
"Request took ${elapsed}s ($av/s)\n" . $c->stats->report . "\n" );
#I think both of these could be attributes. doesn't really seem like they need
#to ble class data. i think that attributes +default would work just fine
-__PACKAGE__->mk_classdata($_) for qw/_dispatch_steps/;
+__PACKAGE__->mk_classdata($_) for qw/_dispatch_steps _action_class/;
__PACKAGE__->_dispatch_steps( [qw/_BEGIN _AUTO _ACTION/] );
+__PACKAGE__->_action_class('Catalyst::Action');
-has _action_class => (
- is => 'rw',
- default => 'Catalyst::Action',
-);
sub _DISPATCH : Private {
my ( $self, $c ) = @_;
}
}
-sub action_class {
- my ($self, %args) = @_;
+sub create_action {
+ my $self = shift;
+ my %args = @_;
my $class = (exists $args{attributes}{ActionClass}
? $args{attributes}{ActionClass}[0]
: $self->_action_class);
Class::MOP::load_class($class);
- return $class;
-}
-
-sub create_action {
- my $self = shift;
- my %args = @_;
-
- my $class = $self->action_class(%args);
my $action_args = $self->config->{action_args};
my %extra_args = (