Module: RestCore::Json

Defined in:
lib/rest-core/util/json.rb

Defined Under Namespace

Modules: Json, MultiJson, YajlRuby

Class Method Summary collapse

Class Method Details

.select_json!(mod, picked = false) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/rest-core/util/json.rb', line 40

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