X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FController.pm;h=972b6a3020b33a7f4819395fa26ac3b1b0d75d70;hb=67e9673e2729bf40b87a20b2afa350be19cd7f5e;hp=aca0b1caf5f18369c06c12cefda4c9bc4fd2ed75;hpb=d0e78355a560fb0f38da0f73e1ca85aae978cb16;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Controller.pm b/lib/Catalyst/Controller.pm index aca0b1c..972b6a3 100644 --- a/lib/Catalyst/Controller.pm +++ b/lib/Catalyst/Controller.pm @@ -44,6 +44,8 @@ sub BUILD { $self->_controller_actions($attr_value); } + + =head1 NAME Catalyst::Controller - Catalyst Controller base class @@ -156,7 +158,7 @@ around action_namespace => sub { } } - my $namespace = Catalyst::Utils::class2prefix(ref($self) || $self, $case_s) || ''; + my $namespace = Catalyst::Utils::class2prefix($self->catalyst_component_name, $case_s) || ''; $self->$orig($namespace) if ref($self); return $namespace; }; @@ -177,8 +179,8 @@ around path_prefix => sub { sub get_action_methods { my $self = shift; - my $meta = find_meta($self); - confess("Metaclass for " + my $meta = find_meta($self) || confess("No metaclass setup for $self"); + confess("Metaclass " . ref($meta) . " for " . $meta->name . " cannot support register_actions." ) @@ -190,7 +192,7 @@ sub get_action_methods { @methods, map { $meta->find_method_by_name($_) - || confess( 'Action "' + || confess( 'Action "' . $_ . '" is not available from controller ' . ( ref $self ) ) @@ -207,10 +209,15 @@ sub register_actions { sub register_action_methods { my ( $self, $c, @methods ) = @_; - my $class = ref $self || $self; + my $class = $self->catalyst_component_name; #this is still not correct for some reason. my $namespace = $self->action_namespace($c); + # Uncomment as soon as you fix the tests :) + #if (!blessed($self) && $self eq $c && scalar(@methods)) { + # $c->log->warn("Action methods found defined in your application class, $self. This is deprecated, please move them into a Root controller."); + #} + foreach my $method (@methods) { my $name = $method->name; my $attributes = $method->attributes;