From: Tomas Doran Date: Wed, 18 Nov 2009 22:24:42 +0000 (+0000) Subject: The Go and visit tests don't like this as you get told to go away in a different... X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=be054434ad044e08d35f84dbd9a5e19d80e49785 The Go and visit tests don't like this as you get told to go away in a different manor, bit this appears to largely work --- diff --git a/lib/Catalyst.pm b/lib/Catalyst.pm index 9a9aaf5..81916cf 100644 --- a/lib/Catalyst.pm +++ b/lib/Catalyst.pm @@ -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; diff --git a/lib/Catalyst/Component.pm b/lib/Catalyst/Component.pm index fe0ef6f..a55e7d2 100644 --- a/lib/Catalyst/Component.pm +++ b/lib/Catalyst/Component.pm @@ -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 diff --git a/lib/Catalyst/Dispatcher.pm b/lib/Catalyst/Dispatcher.pm index 1c1760b..4ea6ce1 100644 --- a/lib/Catalyst/Dispatcher.pm +++ b/lib/Catalyst/Dispatcher.pm @@ -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; diff --git a/t/lib/TestApp.pm b/t/lib/TestApp.pm index 0e5f69b..ba03c0d 100644 --- a/t/lib/TestApp.pm +++ b/t/lib/TestApp.pm @@ -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;