Sha256: a8c494498a2ca298009f8edd79fae7fbf9fb90300bce5ce41318fec521350cb3
Contents?: true
Size: 1.38 KB
Versions: 1
Compression:
Stored size: 1.38 KB
Contents
module RestCore; end module RestCore::Json module MultiJson def self.extended mod mod.const_set(:ParseError, ::MultiJson::DecodeError) end def encode hash ::MultiJson.dump(hash) end def decode json ::MultiJson.load(json) end end module YajlRuby def self.extended mod mod.const_set(:ParseError, Yajl::ParseError) end def encode hash Yajl::Encoder.encode(hash) end def decode json Yajl::Parser.parse(json) end alias_method :decode_from_io, :decode end module Json def self.extended mod mod.const_set(:ParseError, JSON::ParserError) end def encode hash JSON.dump(hash) end def decode json JSON.parse(json, :quirks_mode => true) end end def self.select_json! mod, picked=false if Object.const_defined?(:MultiJson) mod.send(:extend, MultiJson) elsif Object.const_defined?(:Yajl) mod.send(:extend, YajlRuby) elsif Object.const_defined?(:JSON) mod.send(:extend, Json) elsif picked raise LoadError.new( 'No JSON library found. Tried: multi_json, yajl-ruby, json.') else # pick a json gem if available %w[multi_json yajl json].each{ |json| begin require json break rescue LoadError end } select_json!(mod, true) end end select_json!(self) end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rest-core-3.5.5 | lib/rest-core/util/json.rb |