summaryrefslogtreecommitdiffstats
path: root/lib/Bread/Board.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Bread/Board.pm')
-rw-r--r--lib/Bread/Board.pm28
1 files changed, 28 insertions, 0 deletions
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 {