diff options
author | Patrick Spek <p.spek@tyil.nl> | 2018-03-20 14:40:00 +0100 |
---|---|---|
committer | Patrick Spek <p.spek@tyil.nl> | 2018-03-20 14:40:00 +0100 |
commit | fe7e117ee12678095ddbdc7b68907e8b9ad48ae6 (patch) | |
tree | ddb309488457f29a3f456da6d0df0bdd82e88503 /lib/Config.pm6 | |
parent | 681dfeb2dbfb280406dcf4be6a2d80a3c39ccefb (diff) |
Fix :delete adverb
Diffstat (limited to 'lib/Config.pm6')
-rw-r--r-- | lib/Config.pm6 | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/Config.pm6 b/lib/Config.pm6 index 91fafc2..a4bf3af 100644 --- a/lib/Config.pm6 +++ b/lib/Config.pm6 @@ -214,6 +214,27 @@ class Config is Associative is export self; } + multi method unset(Str $key) + { + self.unset($key.split(".").Array); + } + + multi method unset(@parts) + { + my %index := $!content; + my $target = @parts.pop; + + for @parts.list -> $part { + %index{$part} = {} unless defined(%index{$part}); + + %index := %index{$part}; + } + + %index{$target}:delete if %index{$target}:exists; + + self; + } + #| Write the current configuration to the given path. If #| no parser is given, it tries to use the parser that #| was used when loading the configuration. |