Puppet::Functions.create_function(:convert_to_json_string) do def convert_to_json_string(*args) require 'json' value = args[0] if (value.kind_of? Array) && value.all? {|x| x.include? ":"} h = {} value.each do |s| k,v = s.split(/:/) h[k] = v end return h.to_json else return value.to_json end end end