diff options
| author | Mike McQuaid | 2016-11-21 18:45:20 +0000 |
|---|---|---|
| committer | GitHub | 2016-11-21 18:45:20 +0000 |
| commit | c3f959d6af36f075600aac63f208d59c30cd602c (patch) | |
| tree | 336233a927c2be8b69f74dd704b73b3293d6ac33 /Library/Homebrew/compat | |
| parent | c7267b123d38d1c96c2ca786c942255d2417cd86 (diff) | |
| parent | d07b9ed7f2e8806b1840b4f60605ef45487655e1 (diff) | |
| download | brew-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.rb | 37 |
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 |
