aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/compat
diff options
context:
space:
mode:
authorMike McQuaid2016-11-21 18:45:20 +0000
committerGitHub2016-11-21 18:45:20 +0000
commitc3f959d6af36f075600aac63f208d59c30cd602c (patch)
tree336233a927c2be8b69f74dd704b73b3293d6ac33 /Library/Homebrew/compat
parentc7267b123d38d1c96c2ca786c942255d2417cd86 (diff)
parentd07b9ed7f2e8806b1840b4f60605ef45487655e1 (diff)
downloadbrew-c3f959d6af36f075600aac63f208d59c30cd602c.tar.bz2
Merge pull request #1542 from woodruffw/deprecate-utils-json
compat: deprecate Utils::JSON in favor of corelib JSON.
Diffstat (limited to 'Library/Homebrew/compat')
-rw-r--r--Library/Homebrew/compat/json.rb37
1 files changed, 37 insertions, 0 deletions
diff --git a/Library/Homebrew/compat/json.rb b/Library/Homebrew/compat/json.rb
new file mode 100644
index 000000000..c8bf1c292
--- /dev/null
+++ b/Library/Homebrew/compat/json.rb
@@ -0,0 +1,37 @@
+require "json"
+
+module Utils
+ module JSON
+ module_function
+
+ Error = Class.new(StandardError)
+
+ def load(str)
+ odeprecated "Utils::JSON.load", "JSON.parse"
+ ::JSON.parse(str)
+ rescue ::JSON::ParserError => e
+ raise Error, e.message
+ end
+
+ def dump(obj)
+ odeprecated "Utils::JSON.dump", "JSON.generate"
+ ::JSON.generate(obj)
+ end
+
+ def stringify_keys(obj)
+ odeprecated "Utils::JSON.stringify_keys"
+ case obj
+ when Array
+ obj.map { |val| stringify_keys(val) }
+ when Hash
+ obj.inject({}) do |result, (key, val)|
+ key = key.respond_to?(:to_s) ? key.to_s : key
+ val = stringify_keys(val)
+ result.merge!(key => val)
+ end
+ else
+ obj
+ end
+ end
+ end
+end