X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FController.pm;h=3f79106397f87872e9808b80b20f66ed38b9a820;hb=f3c5b1c9ec3109944760a437e6d26adb989ab62b;hp=37e36e10bad9ebb211f4373e29ed5cbd74fc93a1;hpb=1b79e1994c40fc525b4a84c900a5c95ffd4a2f8a;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Controller.pm b/lib/Catalyst/Controller.pm index 37e36e1..3f79106 100644 --- a/lib/Catalyst/Controller.pm +++ b/lib/Catalyst/Controller.pm @@ -156,7 +156,7 @@ around action_namespace => sub { } } - my $namespace = Catalyst::Utils::class2prefix(ref($self) ? $self->_component_name : $self, $case_s) || ''; + my $namespace = Catalyst::Utils::class2prefix($self->_component_name, $case_s) || ''; $self->$orig($namespace) if ref($self); return $namespace; }; @@ -207,10 +207,18 @@ sub register_actions { sub register_action_methods { my ( $self, $c, @methods ) = @_; - my $class = blessed($self) ? $self->_component_name : $self; + my $class = $self->_component_name; #this is still not correct for some reason. my $namespace = $self->action_namespace($c); + # FIXME - fugly + if (!blessed($self) && $self eq $c && scalar(@methods)) { + my @really_bad_methods = grep { ! /^_(DISPATCH|BEGIN|AUTO|ACTION|END)$/ } map { $_->name } @methods; + if (scalar(@really_bad_methods)) { + $c->log->warn("Action methods (" . join(', ', @really_bad_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;