The Go and visit tests don't like this as you get told to go away in a different...
Tomas Doran [Wed, 18 Nov 2009 22:24:42 +0000 (22:24 +0000)]
lib/Catalyst.pm
lib/Catalyst/Component.pm
lib/Catalyst/Dispatcher.pm
t/lib/TestApp.pm

index 9a9aaf5..81916cf 100644 (file)
@@ -3,6 +3,11 @@ package Catalyst;
 use Moose;
 use Moose::Meta::Class ();
 extends 'Catalyst::Component';
+with qw/
+    MooseX::Emulate::Class::Accessor::Fast
+    Catalyst::Config
+    Catalyst::ClassData
+/;
 use Moose::Util qw/find_meta/;
 use B::Hooks::EndOfScope ();
 use Catalyst::Exception;
@@ -523,6 +528,7 @@ sub component {
             return $c->_filter_component( $comp, @args ) if $comp;
         }
 
+        return if $c->config->{disable_component_resolution_regex_fallback};
         # This is here so $c->comp( '::M::' ) works
         my $query = ref $name ? $name : qr{$name}i;
 
index fe0ef6f..a55e7d2 100644 (file)
@@ -10,9 +10,11 @@ use mro 'c3';
 use Scalar::Util 'blessed';
 use namespace::clean -except => 'meta';
 
-with 'MooseX::Emulate::Class::Accessor::Fast';
-with 'Catalyst::ClassData';
-
+with qw/
+    MooseX::Emulate::Class::Accessor::Fast
+    Catalyst::Config
+    Catalyst::ClassData
+/;
 
 =head1 NAME
 
index 1c1760b..4ea6ce1 100644 (file)
@@ -319,20 +319,6 @@ sub _find_component {
 sub _invoke_as_component {
     my ( $self, $c, $component_or_class, $method ) = @_;
 
-    if( $component_or_class eq blessed($c->application) ){ 
-        my $possible_action = $c->application->action_for($method); 
-        return $possible_action if $possible_action; 
-        if( my $code = $c->application->can($method) ){ 
-            return $self->_method_action_class->new( { 
-                    name => $method, 
-                    code => $code, 
-                    reverse => "$component_or_class->$method", 
-                    class => $component_or_class, 
-                    namespace => Catalyst::Utils::class2prefix( $component_or_class ), 
-                } 
-            ); 
-        } 
-    } 
     my $component = $self->_find_component($c, $component_or_class);
     my $component_class = blessed $component || return 0;
 
index 0e5f69b..ba03c0d 100644 (file)
@@ -19,7 +19,10 @@ use namespace::autoclean;
 
 our $VERSION = '0.01';
 
-TestApp->config( name => 'TestApp', root => '/some/dir' );
+TestApp->config(
+    name => 'TestApp', root => '/some/dir',
+    disable_component_resolution_regex_fallback => 1,
+);
 
 TestApp->context_class( 'TestApp::Context' );
 TestApp->setup;