Sha256: 508b470037613dbc84769d87d6a3a215263015896f2ef70d380bde6a30e29e2b
Contents?: true
Size: 1.16 KB
Versions: 3
Compression:
Stored size: 1.16 KB
Contents
require "multi_json/vendor/ok_json" unless defined?(::OkJson) module MultiJson module Engines class OkJson ParseError = ::OkJson::Error def self.decode(string, options = {}) #:nodoc: string = string.read if string.respond_to?(:read) result = ::OkJson.decode(string) options[:symbolize_keys] ? symbolize_keys(result) : result end def self.encode(object) #:nodoc: ::OkJson.encode(stringify_keys(object)) end def self.symbolize_keys(object) #:nodoc: return object unless object.is_a?(Hash) object.inject({}) do |result, (key, value)| new_key = key.is_a?(String) ? key.to_sym : key new_value = value.is_a?(Hash) ? symbolize_keys(value) : value result.merge! new_key => new_value end end def self.stringify_keys(object) #:nodoc: return object unless object.is_a?(Hash) object.inject({}) do |result, (key, value)| new_key = key.is_a?(Symbol) ? key.to_s : key new_value = value.is_a?(Hash) ? stringify_keys(value) : value result.merge! new_key => new_value end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
multi_json-1.0.1 | lib/multi_json/engines/ok_json.rb |
multi_json-1.0.0 | lib/multi_json/engines/ok_json.rb |
multi_json-1.0.0.rc3 | lib/multi_json/engines/ok_json.rb |