X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FController.pm;h=5c2267a85cf931e3f1603732a31844a5abbefb95;hb=9cc543bce15960f805772ee5cda084c5885f76f2;hp=9d6a3623cc4740866829aa4c958192653c0311fb;hpb=86b3c7aa8196c8ca521e8c173b22e0ee53520f9c;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Controller.pm b/lib/Catalyst/Controller.pm index 9d6a362..5c2267a 100644 --- a/lib/Catalyst/Controller.pm +++ b/lib/Catalyst/Controller.pm @@ -4,10 +4,12 @@ package Catalyst::Controller; use base qw/Catalyst::Component Catalyst::AttrContainer/; use Moose; +use Class::MOP::Object (); use Scalar::Util qw/blessed/; use Catalyst::Exception; use Catalyst::Utils; -use Class::Inspector; + +with 'Catalyst::Component::Role::CaptureApp'; has path_prefix => ( @@ -32,10 +34,6 @@ has actions => init_arg => undef, ); -# isa => 'ClassName|Catalyst' ? -has _application => (is => 'rw'); -sub _app{ shift->_application(@_) } - sub BUILD { my ($self, $args) = @_; my $action = delete $args->{action} || {}; @@ -122,15 +120,6 @@ sub _END : Private { return !@{ $c->error }; } -around new => sub { - my $orig = shift; - my $self = shift; - my $app = $_[0]; - my $new = $self->$orig(@_); - $new->_application( $app ); - return $new; -}; - sub action_for { my ( $self, $name ) = @_; my $app = ($self->isa('Catalyst') ? $self : $self->_application); @@ -190,7 +179,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->meta; + my $meta = $self->Class::MOP::Object::meta(); my %methods = map { $_->body => $_->name } grep { $_->package_name ne 'Moose::Object' } #ignore Moose::Object methods $meta->get_all_methods;