fix default_component behavior
André Walker [Fri, 5 Aug 2011 20:47:01 +0000 (17:47 -0300)]
lib/Catalyst/IOC/Container.pm
lib/Catalyst/IOC/SubContainer.pm

index 0d39702..3359ec9 100644 (file)
@@ -82,6 +82,16 @@ sub BUILD {
 
     my $config = $self->resolve( service => 'config' );
 
+    # don't force default_component to be undef if the config wasn't set
+    my @default_view  = $config->{default_view}
+                      ? ( default_component => $config->{default_view} )
+                      : ( )
+                      ;
+    my @default_model = $config->{default_model}
+                      ? ( default_component => $config->{default_model} )
+                      : ( )
+                      ;
+
     $self->add_sub_container(
         $self->build_component_subcontainer
     );
@@ -91,15 +101,11 @@ sub BUILD {
     );
 
     $self->add_sub_container(
-        $self->build_view_subcontainer(
-            default_component => $config->{default_view},
-        )
+        $self->build_view_subcontainer( @default_view )
     );
 
     $self->add_sub_container(
-        $self->build_model_subcontainer(
-            default_component => $config->{default_model},
-        )
+        $self->build_model_subcontainer( @default_model )
     );
 }
 
index 794e373..28c59ff 100644 (file)
@@ -11,7 +11,7 @@ has default_component => (
     lazy     => 1,
 );
 
-sub _build_default_componentt {
+sub _build_default_component {
     my ( $self ) = @_;
 
     my @complist = $self->get_service_list;