Included Modules

MultiJson

Public Class Methods

cached_options() click to toggle source
# File lib/multi_json.rb, line 10
def cached_options
  @cached_options ||= {}
end
reset_cached_options!() click to toggle source
# File lib/multi_json.rb, line 14
def reset_cached_options!
  @cached_options = {}
end

Public Instance Methods

adapter() click to toggle source

Get the current adapter class.

# File lib/multi_json.rb, line 70
def adapter
  return @adapter if defined?(@adapter) && @adapter

  self.use nil # load default adapter

  @adapter
end
Also aliased as: engine
adapter=(new_adapter) click to toggle source
Alias for: use
current_adapter(options={}) click to toggle source
# File lib/multi_json.rb, line 127
def current_adapter(options={})
  if new_adapter = options[:adapter]
    load_adapter(new_adapter)
  else
    adapter
  end
end
decode(string, options={}) click to toggle source
Alias for: load
default_adapter() click to toggle source

The default adapter based on what you currently have loaded and installed. First checks to see if any adapters are already loaded, then checks to see which are installed if none are loaded.

# File lib/multi_json.rb, line 46
def default_adapter
  return :oj if defined?(::Oj)
  return :yajl if defined?(::Yajl)
  return :jr_jackson if defined?(::JrJackson)
  return :json_gem if defined?(::JSON::JSON_LOADED)
  return :gson if defined?(::Gson)

  REQUIREMENT_MAP.each do |library, adapter|
    begin
      require library
      return adapter
    rescue ::LoadError
      next
    end
  end

  Kernel.warn '[WARNING] MultiJson is using the default adapter (ok_json).' +
    'We recommend loading a different JSON library to improve performance.'

  :ok_json
end
Also aliased as: default_engine
default_engine() click to toggle source
Alias for: default_adapter
default_options=(value) click to toggle source
# File lib/multi_json.rb, line 24
def default_options=(value)
  Kernel.warn "MultiJson.default_options setter is deprecated\n" +
    "Use MultiJson.load_options and MultiJson.dump_options instead"

  self.load_options = self.dump_options = value
end
dump(object, options={}) click to toggle source

Encodes a Ruby object as JSON.

# File lib/multi_json.rb, line 136
def dump(object, options={})
  current_adapter(options).dump(object, options)
end
Also aliased as: encode
encode(object, options={}) click to toggle source
Alias for: dump
engine() click to toggle source
Alias for: adapter
engine=(new_adapter) click to toggle source
Alias for: use
load(string, options={}) click to toggle source

Decode a JSON string into Ruby.

Options

:symbolize_keys

If true, will use symbols instead of strings for the keys.

:adapter

If set, the selected adapter will be used for this call.

# File lib/multi_json.rb, line 117
def load(string, options={})
  adapter = current_adapter(options)
  begin
    adapter.load(string, options)
  rescue adapter::ParseError => exception
    raise LoadError.new(exception.message, exception.backtrace, string)
  end
end
Also aliased as: decode
load_adapter(new_adapter) click to toggle source
# File lib/multi_json.rb, line 96
def load_adapter(new_adapter)
  case new_adapter
  when String, Symbol
    load_adapter_from_string_name new_adapter.to_s
  when NilClass, FalseClass
    load_adapter default_adapter
  when Class, Module
    new_adapter
  else
    raise ::LoadError
  end
rescue ::LoadError
  raise ArgumentError, 'Did not recognize your adapter specification.'
end
use(new_adapter) click to toggle source

Set the JSON parser utilizing a symbol, string, or class. Supported by default are:

  • :oj

  • :json_gem

  • :json_pure

  • :ok_json

  • :yajl

  • :nsjsonserialization (MacRuby only)

  • :gson (JRuby only)

  • :jr_jackson (JRuby only)

# File lib/multi_json.rb, line 90
def use(new_adapter)
  @adapter = load_adapter(new_adapter)
end
Also aliased as: adapter=, engine=
with_adapter(new_adapter) click to toggle source

Executes passed block using specified adapter.

# File lib/multi_json.rb, line 142
def with_adapter(new_adapter)
  old_adapter, self.adapter = adapter, new_adapter
  yield
ensure
  self.adapter = old_adapter
end
Also aliased as: with_engine
with_engine(new_adapter) click to toggle source
Alias for: with_adapter

[Validate]

Generated with the Darkfish Rdoc Generator 2.