diff options
Diffstat (limited to 'puppet/lib/puppet/parser/functions/sorted_json.rb')
-rw-r--r-- | puppet/lib/puppet/parser/functions/sorted_json.rb | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/puppet/lib/puppet/parser/functions/sorted_json.rb b/puppet/lib/puppet/parser/functions/sorted_json.rb deleted file mode 100644 index 605da00e..00000000 --- a/puppet/lib/puppet/parser/functions/sorted_json.rb +++ /dev/null @@ -1,47 +0,0 @@ -# -# Written by Gavin Mogan, from https://gist.github.com/halkeye/2287885 -# Put in the public domain by the author. -# - -require 'json' - -def sorted_json(obj) - case obj - when String, Fixnum, Float, TrueClass, FalseClass, NilClass - return obj.to_json - when Array - arrayRet = [] - obj.each do |a| - arrayRet.push(sorted_json(a)) - end - return "[" << arrayRet.join(',') << "]"; - when Hash - ret = [] - obj.keys.sort.each do |k| - ret.push(k.to_json << ":" << sorted_json(obj[k])) - end - return "{" << ret.join(",") << "}"; - else - raise Exception("Unable to handle object of type <%s>" % obj.class.to_s) - end -end - -module Puppet::Parser::Functions - newfunction(:sorted_json, :type => :rvalue, :doc => <<-EOS -This function takes data, outputs making sure the hash keys are sorted - -*Examples:* - - sorted_json({'key'=>'value'}) - -Would return: {'key':'value'} - EOS - ) do |arguments| - raise(Puppet::ParseError, "sorted_json(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size != 1 - - json = arguments[0] - return sorted_json(json) - end -end - |