From: Florian Ragwitz Date: Fri, 26 Dec 2008 00:28:51 +0000 (+0000) Subject: Refactor capturing of $app from ::Controller into ::Component::Role::CaptureApp for... X-Git-Tag: 5.8000_05~78 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=9cc543bce15960f805772ee5cda084c5885f76f2 Refactor capturing of $app from ::Controller into ::Component::Role::CaptureApp for easier reuse in other components. --- diff --git a/lib/Catalyst/Component/Role/CaptureApp.pm b/lib/Catalyst/Component/Role/CaptureApp.pm new file mode 100644 index 0000000..205370e --- /dev/null +++ b/lib/Catalyst/Component/Role/CaptureApp.pm @@ -0,0 +1,20 @@ +package Catalyst::Component::Role::CaptureApp; + +use Moose::Role; +use namespace::clean -except => 'meta'; + +# Future - isa => 'ClassName|Catalyst' performance? +# required => 1 breaks tests.. +has _application => (is => 'ro'); +sub _app { (shift)->_application(@_) } + +override BUILDARGS => sub { + my ($self, $app) = @_; + + my $args = super(); + $args->{_application} = $app; + + return $args; +}; + +1; diff --git a/lib/Catalyst/Controller.pm b/lib/Catalyst/Controller.pm index ec536ae..5c2267a 100644 --- a/lib/Catalyst/Controller.pm +++ b/lib/Catalyst/Controller.pm @@ -9,6 +9,8 @@ use Scalar::Util qw/blessed/; use Catalyst::Exception; use Catalyst::Utils; +with 'Catalyst::Component::Role::CaptureApp'; + has path_prefix => ( is => 'rw', @@ -32,20 +34,6 @@ has actions => init_arg => undef, ); -# Future - isa => 'ClassName|Catalyst' performance? -# required => 1 breaks tests.. -has _application => (is => 'ro'); -sub _app { shift->_application(@_) } - -override 'BUILDARGS' => sub { - my ($self, $app) = @_; - - my $args = super(); - $args->{_application} = $app; - - return $args; -}; - sub BUILD { my ($self, $args) = @_; my $action = delete $args->{action} || {};