remove make_single_default
Tomas Doran [Tue, 2 Aug 2011 20:51:22 +0000 (21:51 +0100)]
TODO
lib/Catalyst/IOC/Container.pm
lib/Catalyst/IOC/SubContainer.pm

diff --git a/TODO b/TODO
index 19b74d8..3910d0f 100644 (file)
--- a/TODO
+++ b/TODO
@@ -145,14 +145,6 @@ after BUILD => sub {
 
 ### To polish off / t0m review
 
-  - +    $class->container->get_sub_container('model')->make_single_default;
-    +    $class->container->get_sub_container('view')->make_single_default;
-
-    locate_components service vs setup_components method
-      - can we be more lazy?
-      - should setup_components be a service that things like the ->component lookup
-        can depend on?
-
     +Same as L<build_model_subcontainer>, but for controllers. The difference is
     +that there is no ACCEPT_CONTEXT for controllers.
     ^^ This is wrong!!
index 825f6f1..a1ca69a 100644 (file)
@@ -472,9 +472,6 @@ sub setup_components {
                 unless $comps{$component};
         }
     }
-
-    $self->get_sub_container('model')->make_single_default;
-    $self->get_sub_container('view')->make_single_default;
 }
 
 sub _fix_syntax {
index 4870bf0..ccbf007 100644 (file)
@@ -7,10 +7,19 @@ extends 'Bread::Board::Container';
 has default_component => (
     isa      => 'Str|Undef',
     is       => 'ro',
-    required => 0,
-    writer   => '_set_default_component',
+    builder  => '_build_default_component',
+    lazy     => 1,
 );
 
+sub _build_default_componentt {
+    my ( $self ) = @_;
+
+    my @complist = $self->get_service_list;
+
+    scalar @complist == 1 ? $complist[0] : undef;
+}
+
+
 sub get_component {
     my ( $self, $name, @args ) = @_;
 
@@ -30,17 +39,6 @@ sub get_component_regexp {
     return @result;
 }
 
-# FIXME - is this sub ok?
-# is the name ok too?
-sub make_single_default {
-    my ( $self ) = @_;
-
-    my @complist = $self->get_service_list;
-
-    $self->_set_default_component( shift @complist )
-        if !$self->default_component && scalar @complist == 1;
-}
-
 1;
 
 __END__