X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FIOC%2FConstructorInjection.pm;h=392d2b7a48aa2ecd40dd28889a1b1fd2915f07ca;hb=d24c7cad0d53c5e72dfd163af5862ba4890d58e2;hp=781bf3b74762d64cc5f8346564922c91c06788f5;hpb=576d8ab82ede7893d118679e0df1e7675e53c446;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/IOC/ConstructorInjection.pm b/lib/Catalyst/IOC/ConstructorInjection.pm index 781bf3b..392d2b7 100644 --- a/lib/Catalyst/IOC/ConstructorInjection.pm +++ b/lib/Catalyst/IOC/ConstructorInjection.pm @@ -8,8 +8,11 @@ extends 'Bread::Board::ConstructorInjection'; sub BUILD { my $self = shift; - $self->add_dependency(__catalyst_config => Bread::Board::Dependency->new(service_path => '/config')); - warn("Added dependency for config in " . $self->class); + $self->add_dependency( + __catalyst_config => Bread::Board::Dependency->new( + service_path => '/config' + ) + ); } has catalyst_component_name => ( @@ -27,8 +30,6 @@ has config => ( around resolve_dependencies => sub { my ($orig, $self, @args) = @_; my %deps = $self->$orig(@args); -# use Data::Dumper; -# warn("$self Resolve deps" . Data::Dumper::Dumper(\%deps)); my $app_config = delete $deps{__catalyst_config}; my $conf_key = Catalyst::Utils::class2classsuffix($self->catalyst_component_name); $self->_set_config($app_config->{$conf_key} || {}); @@ -38,19 +39,12 @@ around resolve_dependencies => sub { sub get { my $self = shift; my $component = $self->class; - warn("In get $component"); my $params = $self->params; - my %config = (%{ $self->config }, %{ $params }); -# warn(Data::Dumper::Dumper(\%config)); + my %config = (%{ $self->config || {} }, %{ $params }); $self->_clear_config; - # FIXME - Is depending on the application name to pass into constructors here a good idea? - # This makes app/ctx split harder I think.. Need to think more here, but I think - # we want to pass the application in as a parameter when building the service - # rather than depending on the app name, so that later, when the app becomes an instance - # then it'll get passed in, and components can stash themselves 'per app instance' - my $app_name = $self->param('application_name'); + my $app_name = $self->param('application'); # Stash catalyst_component_name in the config here, so that custom COMPONENT # methods also pass it.