From e638e7c9685d375afbfba2949943da1c542dae53 Mon Sep 17 00:00:00 2001 From: Saku Ytti Date: Wed, 28 Sep 2016 16:14:35 +0300 Subject: interpolate node variable values Empty value was variably considered "" or nil, now it will always be "" string. Now "nil", "false", "true" strings are converted to their respective types nil, false and true. This also means we cannot have verbatim strings by that name, like if your password was "false", you're shit out of luck. If this is the case, we can add some __false__ hack or consider other similar solutions. Fixes #500 Fixes #534 May break stuff with ""/nil changing now, but as it was not consistent to begin with, I find it acceptable. Users now may need to manually enter nil in some fields to regain old behaviour. --- lib/oxidized/source/sql.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'lib/oxidized/source/sql.rb') diff --git a/lib/oxidized/source/sql.rb b/lib/oxidized/source/sql.rb index fc1caa8..ba85447 100644 --- a/lib/oxidized/source/sql.rb +++ b/lib/oxidized/source/sql.rb @@ -31,7 +31,9 @@ class SQL < Source # map node specific vars vars = {} - @cfg.vars_map.each { |key, sql_column| vars[key.to_sym] = node[sql_column.to_sym] } + @cfg.vars_map.each do |key, sql_column| + vars[key.to_sym] = node_var_interpolate node[sql_column.to_sym] + end keys[:vars] = vars unless vars.empty? nodes << keys -- cgit v1.2.1