X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FController.pm;h=0ccdcb51d7d6a26e6e4c51ba3deaadd1ecd13c88;hb=7618dc796900e79fa001ef66fcf57c3aa757f69f;hp=5c2267a85cf931e3f1603732a31844a5abbefb95;hpb=9cc543bce15960f805772ee5cda084c5885f76f2;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Controller.pm b/lib/Catalyst/Controller.pm index 5c2267a..0ccdcb5 100644 --- a/lib/Catalyst/Controller.pm +++ b/lib/Catalyst/Controller.pm @@ -1,15 +1,17 @@ package Catalyst::Controller; -#switch to BEGIN { extends qw/ ... /; } ? -use base qw/Catalyst::Component Catalyst::AttrContainer/; use Moose; +use Moose::Util qw/find_meta/; + +use namespace::clean -except => 'meta'; + +# Note - Must be done at compile time due to attributes (::AttrContainer) +BEGIN { extends qw/Catalyst::Component Catalyst::AttrContainer/; } -use Class::MOP::Object (); -use Scalar::Util qw/blessed/; use Catalyst::Exception; use Catalyst::Utils; -with 'Catalyst::Component::Role::CaptureApp'; +with 'Catalyst::Component::ApplicationAttribute'; has path_prefix => ( @@ -179,7 +181,7 @@ sub register_actions { my $class = ref $self || $self; #this is still not correct for some reason. my $namespace = $self->action_namespace($c); - my $meta = $self->Class::MOP::Object::meta(); + my $meta = find_meta($self); my %methods = map { $_->body => $_->name } grep { $_->package_name ne 'Moose::Object' } #ignore Moose::Object methods $meta->get_all_methods; @@ -388,8 +390,6 @@ sub _parse_MyAction_attr { return ( 'ActionClass', $value ); } -no Moose; - __PACKAGE__->meta->make_immutable; 1;