X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst.pm;h=1fabc37e9df406df992edb6f7801f10fda8685b9;hb=f04816ce0ee1fdd7127d8c9f2aaa78345e0b7169;hp=2dd7d5dceb334e916b2a3b9e8df194ac93437d97;hpb=ffc0b0d89b5926350cf41ea00c7e71e6546149a5;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst.pm b/lib/Catalyst.pm index 2dd7d5d..1fabc37 100644 --- a/lib/Catalyst.pm +++ b/lib/Catalyst.pm @@ -2455,18 +2455,15 @@ sub setup_config { my %args = %{ $class->config || {} }; -# FIXME: what is this 'MyApp' doing here? - my @container_classes = qw/MyApp::Container Catalyst::Container/; + my @container_classes = ( "${class}::Container", 'Catalyst::Container'); unshift @container_classes, delete $args{container_class} if exists $args{container_class}; my $container_class = Class::MOP::load_first_existing_class(@container_classes); my $container = $container_class->new( %args, name => "$class" ); - - $container->add_sub_container(Bread::Board::Container->new( name => $_ )) for qw(model controller view); $class->container($container); - my $config = $container->fetch('config')->get; + my $config = $container->resolve(service => 'config'); $class->config($config); $class->finalize_config; # back-compat } @@ -2547,9 +2544,9 @@ sub _get_component_type { my @parts = split /::/, $component; for (@parts) { - return 'controller' if /c|controller/i; - return 'model' if /m|model/i; - return 'view' if /v|view/i; + return 'controller' if /^c|controller$/i; + return 'model' if /^m|model$/i; + return 'view' if /^v|view$/i; } } @@ -2623,8 +2620,7 @@ sub setup_component { message => qq/Couldn't instantiate component "$component", "$error"/ ); } - - unless (blessed $instance) { + elsif (!blessed $instance) { my $metaclass = Moose::Util::find_meta($component); my $method_meta = $metaclass->find_method_by_name('COMPONENT'); my $component_method_from = $method_meta->associated_metaclass->name; @@ -2634,6 +2630,7 @@ sub setup_component { qq/Couldn't instantiate component "$component", COMPONENT() method (from $component_method_from) didn't return an object-like value (value was $value)./ ); } + return $instance; }