From cac9a5f9e429d2461bd2830bc983eced5ef14e1a Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Wed, 26 Apr 2017 07:53:05 +0200 Subject: Make .read() merge the hashes and allow an array of paths to load --- META6.json | 2 +- lib/Config.pm6 | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/META6.json b/META6.json index a3614c3..cfb38a3 100644 --- a/META6.json +++ b/META6.json @@ -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) -- cgit v1.1