diff options
author | Patrick Spek <p.spek@tyil.nl> | 2017-04-26 07:53:05 +0200 |
---|---|---|
committer | Patrick Spek <p.spek@tyil.nl> | 2017-04-26 07:53:05 +0200 |
commit | cac9a5f9e429d2461bd2830bc983eced5ef14e1a (patch) | |
tree | a86da52ebed362f7c622937026554dcaf81e1abe /lib/Config.pm6 | |
parent | acdac7ea2f81e739c7e2b5cb37d3f3cdc71962a8 (diff) |
Make .read() merge the hashes and allow an array of paths to load
Diffstat (limited to 'lib/Config.pm6')
-rw-r--r-- | lib/Config.pm6 | 14 |
1 files changed, 12 insertions, 2 deletions
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) |