diff options
-rw-r--r-- | META6.json | 2 | ||||
-rw-r--r-- | lib/Config.pm6 | 14 |
2 files changed, 13 insertions, 3 deletions
@@ -6,7 +6,7 @@ "description": "Extensible library for reading and writing configuration files.", "license": "GPL-3.0", "depends": [ - + "Hash::Merge" ], "provides": { "Config": "lib/Config.pm6", diff --git a/lib/Config.pm6 b/lib/Config.pm6 index 2fa01bf..372eb3b 100644 --- a/lib/Config.pm6 +++ b/lib/Config.pm6 @@ -2,6 +2,8 @@ use v6.c; +use Hash::Merge; + use Config::Exception::MissingParserException; use Config::Exception::UnknownTypeException; use Config::Exception::FileNotFoundException; @@ -109,15 +111,23 @@ class Config is export } require ::($!parser); - $!content = ::($!parser).read($path); + + $!content.merge(::($!parser).read($path)); } return True; } + multi method read(Array $paths, Str $parser = "") + { + for $paths -> $path { + self.read($path, $parser); + } + } + multi method read(Hash $hash) { - $!content = $hash; + $!content.merge($hash); } method set(Str $key, Any $value) |