From c722482a26ab64d3cf35b1c79ee089b79f177357 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Mon, 10 Oct 2011 18:17:38 -0500 Subject: handle setting name slightly better --- lib/Bread/Board/Declare/Role/Object.pm | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'lib') diff --git a/lib/Bread/Board/Declare/Role/Object.pm b/lib/Bread/Board/Declare/Role/Object.pm index b1f5fbd..b4f509d 100644 --- a/lib/Bread/Board/Declare/Role/Object.pm +++ b/lib/Bread/Board/Declare/Role/Object.pm @@ -53,19 +53,31 @@ after BUILD => sub { my $container; if ($attr->has_value($self) || $attr->has_default || $attr->has_builder) { $container = $attr->get_value($self); + $container->name($attr->name); } else { + my $dependencies = $attr->has_dependencies + ? $attr->dependencies + : {}; + + if (!exists $dependencies->{name}) { + my $name_dep = Bread::Board::Dependency->new( + service => Bread::Board::Literal->new( + name => '__ANON__', + value => $attr->name, + ), + ); + $dependencies->{name} = $name_dep; + } + my $s = Bread::Board::ConstructorInjection->new( name => '__ANON__', parent => $self, class => $attr->type_constraint->class, - ($attr->has_dependencies - ? (dependencies => $attr->dependencies) - : ()), + dependencies => $dependencies, ); $container = $s->get; } - $container->name($attr->name); $self->add_sub_container($container); } }; -- cgit v1.2.3-54-g00ecf