module Jellyfish::Json

Public Class Methods

select_json!(mod, picked=false) click to toggle source
# File lib/jellyfish/json.rb, line 41
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