From 95f3bc48bdd590379d9bb373f526a109f10e07a5 Mon Sep 17 00:00:00 2001 From: Jonathan Bernard Date: Fri, 18 May 2018 11:18:40 -0500 Subject: [PATCH] Make the CombinedConfig.getVal function more tolerant of non-string values. --- cliutils.nim | 11 ++++++++++- cliutils.nimble | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/cliutils.nim b/cliutils.nim index 48ee05c..c342367 100644 --- a/cliutils.nim +++ b/cliutils.nim @@ -15,7 +15,16 @@ proc getVal*(cfg: CombinedConfig, key, default: string): string = if cfg.docopt[argKey]: return $cfg.docopt[argKey] elif existsEnv(envKey): return getEnv(envKey) - elif cfg.json.hasKey(jsonKey): return cfg.json[jsonKey].getStr + elif cfg.json.hasKey(jsonKey): + let node = cfg.json[jsonKey] + case node.kind + of JString: return node.getStr + of JInt: return $node.getInt + of JFloat: return $node.getFloat + of JBool: return $node.getBool + of JNull: return "" + of JObject: return $node + of JArray: return $node else: return default diff --git a/cliutils.nimble b/cliutils.nimble index f7f6bde..b5dbbc8 100644 --- a/cliutils.nimble +++ b/cliutils.nimble @@ -1,6 +1,6 @@ # Package -version = "0.3.4" +version = "0.3.5" author = "Jonathan Bernard" description = "Helper functions for writing command line interfaces." license = "MIT"