[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