diff options
Diffstat (limited to 'lib/Bread/Board.pm')
-rw-r--r-- | lib/Bread/Board.pm | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/lib/Bread/Board.pm b/lib/Bread/Board.pm index 8ee05e7..82b886c 100644 --- a/lib/Bread/Board.pm +++ b/lib/Bread/Board.pm @@ -170,7 +170,16 @@ class ConstructorInjection does Service does HasParameters does HasDependencies if %params.<dependencies> { if %params.<dependencies> ~~ Array { %params.<dependencies> = %params.<dependencies>.map(-> $dep { - $dep.service_path.split('/').[*-1] => $dep + my ($name, $obj); + if ($dep ~~ Dependency) { + $name = $dep.service_path.split('/').[*-1]; + $obj = $dep; + } + else { + $name = $dep.split('/').[*-1]; + $obj = Dependency.new(service_path => $dep); + } + $name => $obj }).hash; } @@ -235,7 +244,16 @@ class BlockInjection does Service does HasParameters does HasDependencies { if %params.<dependencies> { if %params.<dependencies> ~~ Array { %params.<dependencies> = %params.<dependencies>.map(-> $dep { - $dep.service_path.split('/').[*-1] => $dep + my ($name, $obj); + if ($dep ~~ Dependency) { + $name = $dep.service_path.split('/').[*-1]; + $obj = $dep; + } + else { + $name = $dep.split('/').[*-1]; + $obj = Dependency.new(service_path => $dep); + } + $name => $obj }).hash; } |