Refactor capturing of $app from ::Controller into ::Component::Role::CaptureApp for...
Florian Ragwitz [Fri, 26 Dec 2008 00:28:51 +0000 (00:28 +0000)]
lib/Catalyst/Component/Role/CaptureApp.pm [new file with mode: 0644]
lib/Catalyst/Controller.pm

diff --git a/lib/Catalyst/Component/Role/CaptureApp.pm b/lib/Catalyst/Component/Role/CaptureApp.pm
new file mode 100644 (file)
index 0000000..205370e
--- /dev/null
@@ -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;
index ec536ae..5c2267a 100644 (file)
@@ -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}  || {};