From 5b860788353f345bec807a8eab3882c24acc3971 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Fri, 28 Dec 2012 17:43:58 -0600 Subject: add .gist for containers, for easier debugging --- lib/Bread/Board.pm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/lib/Bread/Board.pm b/lib/Bread/Board.pm index 1934ec0..8ee05e7 100644 --- a/lib/Bread/Board.pm +++ b/lib/Bread/Board.pm @@ -356,6 +356,34 @@ class Container does Traversable { method resolve (Str :$service) { return self.fetch($service).get; } + + method gist (:$indent = 0) { + my $spaces = " " x $indent; + my $str = "{$spaces}{$.name // '???'} \{\n"; + + for $.sub_containers.values -> $c { + $str ~= $c.gist(indent => $indent + 2); + } + + for $.services.values -> $s { + $str ~= "$spaces {$s.name // '???'}\n"; + if ($s ~~ HasDependencies) { + for $s.dependencies.kv -> $dep_name, $dep { + $str ~= "$spaces $dep_name\: {$dep.service_path // '???'}\n"; + } + } + if ($s ~~ HasParameters) { + for $s.parameters.keys -> $param_name { + $str ~= "$spaces !$param_name\n"; + } + } + + } + + $str ~= "$spaces\}\n"; + + return $str; + } } role Singleton does Lifecycle is export { -- cgit v1.2.3