X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FIOC%2FContainer.pm;h=07d7fc572c5c773b4876cdf912e49bed397af226;hb=9084f394cf7b3a451cac0b6732b921b2dd3fad55;hp=921854ca0499c716cc68f0cdd0e2e3aa2af1e7dc;hpb=cdd4485fd83d88cd2f68a2d9a5685fe4f3c33864;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/IOC/Container.pm b/lib/Catalyst/IOC/Container.pm index 921854c..07d7fc5 100644 --- a/lib/Catalyst/IOC/Container.pm +++ b/lib/Catalyst/IOC/Container.pm @@ -592,16 +592,16 @@ sub find_component { } sub _find_component_regexp { - my ( $self, $component, @args ) = @_; + my ( $self, $component, $ctx, @args ) = @_; my @result; - my @components = grep { m{$component} } keys %{ $self->get_all_components }; + my @components = grep { m{$component} } keys %{ $self->get_all_components($ctx) }; for (@components) { my ($type, $name) = _get_component_type_name($_); push @result, $self->get_component_from_sub_container( - $type, $name, @args + $type, $name, $ctx, @args ) if $type; } @@ -609,7 +609,7 @@ sub _find_component_regexp { } sub get_all_components { - my $self = shift; + my ($self, $class) = @_; my %components; # FIXME - if we're getting from these containers, we need to either: @@ -619,10 +619,9 @@ sub get_all_components { my $container = $self->get_sub_container($type); for my $component ($container->get_service_list) { - my $comp = $container->get_service($component); + my $comp_service = $container->get_service($component); - # is this better? - $components{$comp->catalyst_component_name} = $comp->get; + $components{$comp_service->catalyst_component_name} = $comp_service->get(ctx => $class); } } @@ -664,6 +663,7 @@ sub add_component { $accept_context_container->add_service( Catalyst::IOC::BlockInjection->new( name => $name, + catalyst_component_name => $component, dependencies => [ depends_on( "/component/$component_service_name" ), ],