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 => (
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} || {});
sub get {
my $self = shift;
- warn("In get $self");
my $component = $self->class;
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 = $self->param('catalyst_application');
# Stash catalyst_component_name in the config here, so that custom COMPONENT
- # methods also pass it. local to avoid pointlessly shitting in config
- # for the debug screen, as $component is already the key name.
+ # methods also pass it.
$config{catalyst_component_name} = $self->catalyst_component_name;
unless ( $component->can( 'COMPONENT' ) ) {
my $instance;
try {
- $instance = $component->COMPONENT( $app_name, \%config );
+ $instance = $component->COMPONENT( $app, \%config );
}
catch {
Catalyst::Exception->throw(