[Catalyst-commits] r11900 - in Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned: . lib lib/Catalyst t t/aggregate t/lib t/lib/TestAppPathBug t/lib/TestAppPathBug/Controller

t0m at dev.catalyst.perl.org t0m at dev.catalyst.perl.org
Thu Nov 19 00:03:21 GMT 2009


Author: t0m
Date: 2009-11-19 00:03:20 +0000 (Thu, 19 Nov 2009)
New Revision: 11900

Added:
   Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/lib/Catalyst/Config.pm
   Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/t/lib/TestAppPathBug/
   Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/t/lib/TestAppPathBug/Controller/
   Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/t/lib/TestAppPathBug/Controller/Root.pm
Removed:
   Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/t/aggregate/custom_live_path_bug.t
   Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/t/deprecated_appclass_action_warnings.t
   Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/t/lib/DeprecatedActionsInAppClassTestApp.pm
Modified:
   Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/
   Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/lib/Catalyst.pm
   Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/lib/Catalyst/Component.pm
   Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/lib/Catalyst/Dispatcher.pm
   Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/t/lib/TestApp.pm
Log:
 r11927 at t0mlaptop (orig r11892):  t0m | 2009-11-18 21:59:35 +0000
 Branch the app-ctx branch to remove myapp isa component. Branching as this may go badly ;)
 r11928 at t0mlaptop (orig r11893):  t0m | 2009-11-18 22:11:25 +0000
 Stop the app class being a controller, and stop it being stuffed in the component registry
 r11929 at t0mlaptop (orig r11894):  t0m | 2009-11-18 22:24:42 +0000
 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
 r11930 at t0mlaptop (orig r11895):  t0m | 2009-11-18 22:25:36 +0000
 Forgot to commit - ripped the config bits of ::Component out into a role so that I could apply to the app class to get the basic stuff
 r11931 at t0mlaptop (orig r11896):  t0m | 2009-11-18 22:38:44 +0000
 This is also toast. We need a much better error, but this can go



Property changes on: Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned
___________________________________________________________________
Name: svk:merge
   - 1c72fc7c-9ce4-42af-bf25-3bfe470ff1e8:/local/Catalyst/trunk/Catalyst-Runtime:9763
4ad37cd2-5fec-0310-835f-b3785c72a374:/Catalyst-Runtime/5.70/branches/compres:7999
4ad37cd2-5fec-0310-835f-b3785c72a374:/Catalyst-Runtime/5.70/branches/context_go:8001
4ad37cd2-5fec-0310-835f-b3785c72a374:/Catalyst-Runtime/5.70/trunk:8533
4ad37cd2-5fec-0310-835f-b3785c72a374:/Catalyst-Runtime/5.80/branches/Catalyst-Test-Updates:8363
4ad37cd2-5fec-0310-835f-b3785c72a374:/Catalyst-Runtime/5.80/branches/add_captures_to_visit:9546
4ad37cd2-5fec-0310-835f-b3785c72a374:/Catalyst-Runtime/5.80/branches/aggregate_more:11803
4ad37cd2-5fec-0310-835f-b3785c72a374:/Catalyst-Runtime/5.80/branches/disable_regex_fallback:11456
4ad37cd2-5fec-0310-835f-b3785c72a374:/Catalyst-Runtime/5.80/branches/index_default_fuckage:10646
4ad37cd2-5fec-0310-835f-b3785c72a374:/Catalyst-Runtime/5.80/branches/moose:7911
4ad37cd2-5fec-0310-835f-b3785c72a374:/Catalyst-Runtime/5.80/branches/namespace_handling_refactor:10655
4ad37cd2-5fec-0310-835f-b3785c72a374:/Catalyst-Runtime/5.80/branches/uri_encode_captures_andor_args_take2:11811
4ad37cd2-5fec-0310-835f-b3785c72a374:/branches/Catalyst-ChildOf:4443
4ad37cd2-5fec-0310-835f-b3785c72a374:/branches/Catalyst-Runtime-jrockway:5857
4ad37cd2-5fec-0310-835f-b3785c72a374:/branches/Catalyst-component-setup:4320
4ad37cd2-5fec-0310-835f-b3785c72a374:/branches/Catalyst-docs:4325
4ad37cd2-5fec-0310-835f-b3785c72a374:/branches/current/Catalyst-Runtime:5142
4ad37cd2-5fec-0310-835f-b3785c72a374:/trunk/Catalyst:4483
4ad37cd2-5fec-0310-835f-b3785c72a374:/trunk/Catalyst-Runtime:6165
8a9521aa-ff93-41d6-9f87-b05cafcdab40:/local/cat/Catalyst-Runtime/5.80/trunk:8157
d7608cd0-831c-0410-93c0-e5b306c3c028:/local/Catalyst/Catalyst-Runtime:8339
d7608cd0-831c-0410-93c0-e5b306c3c028:/local/Catalyst/Catalyst-Runtime-jrockway:8342
e56d974f-7718-0410-8b1c-b347a71765b2:/local/Catalyst-Runtime:6511
e56d974f-7718-0410-8b1c-b347a71765b2:/local/Catalyst-Runtime-current:10442
   + 1c72fc7c-9ce4-42af-bf25-3bfe470ff1e8:/local/Catalyst/trunk/Catalyst-Runtime:9763
4ad37cd2-5fec-0310-835f-b3785c72a374:/Catalyst-Runtime/5.70/branches/compres:7999
4ad37cd2-5fec-0310-835f-b3785c72a374:/Catalyst-Runtime/5.70/branches/context_go:8001
4ad37cd2-5fec-0310-835f-b3785c72a374:/Catalyst-Runtime/5.70/trunk:8533
4ad37cd2-5fec-0310-835f-b3785c72a374:/Catalyst-Runtime/5.80/branches/Catalyst-Test-Updates:8363
4ad37cd2-5fec-0310-835f-b3785c72a374:/Catalyst-Runtime/5.80/branches/add_captures_to_visit:9546
4ad37cd2-5fec-0310-835f-b3785c72a374:/Catalyst-Runtime/5.80/branches/aggregate_more:11803
4ad37cd2-5fec-0310-835f-b3785c72a374:/Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned-appnotcomponent:11896
4ad37cd2-5fec-0310-835f-b3785c72a374:/Catalyst-Runtime/5.80/branches/disable_regex_fallback:11456
4ad37cd2-5fec-0310-835f-b3785c72a374:/Catalyst-Runtime/5.80/branches/index_default_fuckage:10646
4ad37cd2-5fec-0310-835f-b3785c72a374:/Catalyst-Runtime/5.80/branches/moose:7911
4ad37cd2-5fec-0310-835f-b3785c72a374:/Catalyst-Runtime/5.80/branches/namespace_handling_refactor:10655
4ad37cd2-5fec-0310-835f-b3785c72a374:/Catalyst-Runtime/5.80/branches/uri_encode_captures_andor_args_take2:11811
4ad37cd2-5fec-0310-835f-b3785c72a374:/Catalyst-Runtime/5.80/trunk:11825
4ad37cd2-5fec-0310-835f-b3785c72a374:/branches/Catalyst-ChildOf:4443
4ad37cd2-5fec-0310-835f-b3785c72a374:/branches/Catalyst-Runtime-jrockway:5857
4ad37cd2-5fec-0310-835f-b3785c72a374:/branches/Catalyst-component-setup:4320
4ad37cd2-5fec-0310-835f-b3785c72a374:/branches/Catalyst-docs:4325
4ad37cd2-5fec-0310-835f-b3785c72a374:/branches/current/Catalyst-Runtime:5142
4ad37cd2-5fec-0310-835f-b3785c72a374:/trunk/Catalyst:4483
4ad37cd2-5fec-0310-835f-b3785c72a374:/trunk/Catalyst-Runtime:6165
8a9521aa-ff93-41d6-9f87-b05cafcdab40:/local/cat/Catalyst-Runtime/5.80/trunk:8157
d7608cd0-831c-0410-93c0-e5b306c3c028:/local/Catalyst/Catalyst-Runtime:8339
d7608cd0-831c-0410-93c0-e5b306c3c028:/local/Catalyst/Catalyst-Runtime-jrockway:8342
e56d974f-7718-0410-8b1c-b347a71765b2:/local/Catalyst-Runtime:6511
e56d974f-7718-0410-8b1c-b347a71765b2:/local/Catalyst-Runtime-current:10442

Modified: Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/lib/Catalyst/Component.pm
===================================================================
--- Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/lib/Catalyst/Component.pm	2009-11-18 23:33:11 UTC (rev 11899)
+++ Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/lib/Catalyst/Component.pm	2009-11-19 00:03:20 UTC (rev 11900)
@@ -10,10 +10,12 @@
 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
 
 Catalyst::Component - Catalyst Component Base Class

Added: Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/lib/Catalyst/Config.pm
===================================================================
--- Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/lib/Catalyst/Config.pm	                        (rev 0)
+++ Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/lib/Catalyst/Config.pm	2009-11-19 00:03:20 UTC (rev 11900)
@@ -0,0 +1,40 @@
+package Catalyst::Config;
+use Moose::Role;
+use Class::MOP ();
+use Catalyst::Utils ();
+use namespace::autoclean;
+
+sub config {
+    my $self = shift;
+    # Uncomment once sane to do so
+    #Carp::cluck("config method called on instance") if ref $self;
+    my $config = $self->_config || {};
+    if (@_) {
+        my $newconfig = { %{@_ > 1 ? {@_} : $_[0]} };
+        $self->_config(
+            $self->merge_config_hashes( $config, $newconfig )
+        );
+    } else {
+        # this is a bit of a kludge, required to make
+        # __PACKAGE__->config->{foo} = 'bar';
+        # work in a subclass.
+        # TODO maybe this should be a ClassData option?
+        my $class = blessed($self) || $self;
+        my $meta = Class::MOP::get_metaclass_by_name($class);
+        unless ($meta->has_package_symbol('$_config')) {
+            # Call merge_hashes to ensure we deep copy the parent
+            # config onto the subclass
+            $self->_config( Catalyst::Utils::merge_hashes($config, {}) );
+        }
+    }
+    return $self->_config;
+}
+
+sub merge_config_hashes {
+    my ( $self, $lefthash, $righthash ) = @_;
+
+    return Catalyst::Utils::merge_hashes( $lefthash, $righthash );
+}
+
+1;
+

Modified: Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/lib/Catalyst/Dispatcher.pm
===================================================================
--- Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/lib/Catalyst/Dispatcher.pm	2009-11-18 23:33:11 UTC (rev 11899)
+++ Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/lib/Catalyst/Dispatcher.pm	2009-11-19 00:03:20 UTC (rev 11900)
@@ -319,20 +319,6 @@
 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;
 

Modified: Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/lib/Catalyst.pm
===================================================================
--- Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/lib/Catalyst.pm	2009-11-18 23:33:11 UTC (rev 11899)
+++ Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/lib/Catalyst.pm	2009-11-19 00:03:20 UTC (rev 11900)
@@ -3,6 +3,11 @@
 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;
@@ -10,6 +15,8 @@
 use Catalyst::Utils;
 use Catalyst::Controller;
 use Catalyst::Context;
+use Catalyst::Exception::Detach;
+use Catalyst::Exception::Go;
 use Devel::InnerPackage ();
 use Module::Pluggable::Object ();
 use Text::SimpleTable ();
@@ -71,9 +78,9 @@
     }
 
     my $meta = Moose::Meta::Class->initialize($caller);
+    # Make the caller inherit from Catalyst
     unless ( $caller->isa('Catalyst') ) {
-        my @superclasses = ($meta->superclasses, $class, 'Catalyst::Controller');
-        $meta->superclasses(@superclasses);
+        $meta->superclasses($meta->superclasses, 'Catalyst');
     }
     # Avoid possible C3 issues if 'Moose::Object' is already on RHS of MyApp
     $meta->superclasses(grep { $_ ne 'Moose::Object' } $meta->superclasses);
@@ -521,6 +528,7 @@
             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;
 
@@ -826,11 +834,6 @@
           if ( keys %{ $class->components } );
     }
 
-    # Add our self to components, since we are also a component
-    if( $class->isa('Catalyst::Controller') ){
-      $class->components->{$class} = $class;
-    }
-
     $class->setup_actions;
 
     if ( $class->debug ) {

Deleted: Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/t/aggregate/custom_live_path_bug.t
===================================================================
--- Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/t/aggregate/custom_live_path_bug.t	2009-11-18 23:33:11 UTC (rev 11899)
+++ Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/t/aggregate/custom_live_path_bug.t	2009-11-19 00:03:20 UTC (rev 11900)
@@ -1,39 +0,0 @@
-#!perl
-
-use strict;
-use warnings;
-
-use FindBin;
-use lib "$FindBin::Bin/../lib";
-
-our $iters;
-
-BEGIN { $iters = $ENV{CAT_BENCH_ITERS} || 1; }
-
-use Test::More tests => 2*$iters;
-use Catalyst::Test 'TestAppPathBug';
-
-if ( $ENV{CAT_BENCHMARK} ) {
-    require Benchmark;
-    Benchmark::timethis( $iters, \&run_tests );
-}
-else {
-    for ( 1 .. $iters ) {
-        run_tests();
-    }
-}
-
-sub run_tests {
-    SKIP:
-    {
-        if ( $ENV{CATALYST_SERVER} ) {
-            skip 'Using remote server', 2;
-        }
-
-        {
-            my $expected = 'This is the foo method.';
-            ok( my $response = request('http://localhost/'), 'response ok' );
-            is( $response->content, $expected, 'Content OK' );
-        }
-    }
-}

Deleted: Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/t/deprecated_appclass_action_warnings.t
===================================================================
--- Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/t/deprecated_appclass_action_warnings.t	2009-11-18 23:33:11 UTC (rev 11899)
+++ Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/t/deprecated_appclass_action_warnings.t	2009-11-19 00:03:20 UTC (rev 11900)
@@ -1,18 +0,0 @@
-use strict;
-use warnings;
-
-use FindBin;
-use lib "$FindBin::Bin/lib";
-
-use Test::More;
-use Catalyst::Test 'DeprecatedActionsInAppClassTestApp';
-
-plan tests => 3;
-
-my $warnings;
-my $logger = DeprecatedActionsInAppClassTestApp::Log->new;
-Catalyst->log($logger);
-
-ok( my $response = request('http://localhost/foo'), 'Request' );
-ok( $response->is_success, 'Response Successful 2xx' );
-is( $DeprecatedActionsInAppClassTestApp::Log::warnings, 1, 'Get the appclass action warning' );
\ No newline at end of file

Deleted: Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/t/lib/DeprecatedActionsInAppClassTestApp.pm
===================================================================
--- Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/t/lib/DeprecatedActionsInAppClassTestApp.pm	2009-11-18 23:33:11 UTC (rev 11899)
+++ Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/t/lib/DeprecatedActionsInAppClassTestApp.pm	2009-11-19 00:03:20 UTC (rev 11900)
@@ -1,30 +0,0 @@
-package DeprecatedActionsInAppClassTestApp;
-
-use strict;
-use warnings;
-use Catalyst;
-
-our $VERSION = '0.01';
-
-__PACKAGE__->config( name => 'DeprecatedActionsInAppClassTestApp', root => '/some/dir' );
-__PACKAGE__->log(DeprecatedActionsInAppClassTestApp::Log->new);
-__PACKAGE__->setup;
-
-sub foo : Local {
-    my ($self, $c) = @_;
-    $c->res->body('OK');
-}
-
-package DeprecatedActionsInAppClassTestApp::Log;
-use strict;
-use warnings;
-use base qw/Catalyst::Log/;
-
-our $warnings;
-
-sub warn {
-    my ($self, $warning) = @_;
-    $warnings++ if $warning =~ /action methods .+ found defined/i;
-}
-
-1;

Modified: Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/t/lib/TestApp.pm
===================================================================
--- Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/t/lib/TestApp.pm	2009-11-18 23:33:11 UTC (rev 11899)
+++ Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/t/lib/TestApp.pm	2009-11-19 00:03:20 UTC (rev 11900)
@@ -19,7 +19,10 @@
 
 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;

Added: Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/t/lib/TestAppPathBug/Controller/Root.pm
===================================================================
--- Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/t/lib/TestAppPathBug/Controller/Root.pm	                        (rev 0)
+++ Catalyst-Runtime/5.80/branches/basic-app-ctx-separation-cleaned/t/lib/TestAppPathBug/Controller/Root.pm	2009-11-19 00:03:20 UTC (rev 11900)
@@ -0,0 +1,14 @@
+package TestAppPathBug::Controller::Root;
+use strict;
+use warnings;
+use base qw/Catalyst::Controller/;
+
+__PACKAGE__->config(namespace => '');
+
+sub foo : Path {
+    my ( $self, $c ) = @_;
+    $c->res->body( 'This is the foo method.' );
+}
+
+1;
+




More information about the Catalyst-commits mailing list