X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FIOC.pm;h=4b25e1b6b5af960c0e4f303400d7ecd32644e441;hb=6329bfe593d5ea3891011333f7d7984b4e5e7910;hp=8384566b378394836ecc516c9983c17e01a000e6;hpb=f76c40f0fe2e1c79215f6e9353b69fbda816824e;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/IOC.pm b/lib/Catalyst/IOC.pm index 8384566..4b25e1b 100644 --- a/lib/Catalyst/IOC.pm +++ b/lib/Catalyst/IOC.pm @@ -34,12 +34,15 @@ sub container (&) { }; } -sub model (&) { _subcontainer( shift, (caller)[0], 'model' ) } -sub view (&) { _subcontainer( shift, (caller)[0], 'view' ) } -sub controller (&) { _subcontainer( shift, (caller)[0], 'controller' ) } +sub model (&) { &_subcontainer } +sub view (&) { &_subcontainer } +sub controller (&) { &_subcontainer } -sub _subcontainer (&$$) { - my ( $code, $caller, $subcontainer ) = @_; +sub _subcontainer { + my $code = shift; + + my ( $caller, $f, $l, $subcontainer ) = caller(1); + $subcontainer =~ s/^Catalyst::IOC:://; no strict 'refs'; local ${"${caller}::current_container"} = @@ -61,7 +64,7 @@ sub component ($;%) { $args{dependencies}{application_name} = depends_on( '/application_name' ); my $lifecycle = $args{lifecycle} || 'Singleton'; - $args{lifecycle} = grep( m/^$lifecycle$/, qw/COMPONENTSingleton Request/) + $args{lifecycle} = grep( m/^$lifecycle$/, qw/COMPONENTSingleton Request/ ) ? "+Catalyst::IOC::LifeCycle::$lifecycle" : $lifecycle ; @@ -158,7 +161,7 @@ Sets up the controller container to be customised. =head2 component -Adds a component to the subcontainer. Works like L. +Adds a component to the sub-container. Works like L. =head1 AUTHORS