class MultiJson::Adapter

Public Class Methods

defaults(action, value) click to toggle source
# File lib/multi_json/adapter.rb, line 10
def defaults(action, value)
  metaclass = class << self; self; end

  metaclass.instance_eval do
    define_method("default_#{action}_options"){ value }
  end
end
dump(object, options={}) click to toggle source
# File lib/multi_json/adapter.rb, line 22
def dump(object, options={})
  instance.dump(object, collect_dump_options(options).clone)
end
load(string, options={}) click to toggle source
# File lib/multi_json/adapter.rb, line 18
def load(string, options={})
  instance.load(string, collect_load_options(options).clone)
end

Protected Class Methods

cache(method, options) { || ... } click to toggle source
# File lib/multi_json/adapter.rb, line 41
def cache(method, options)
  cache_key = [self, options].map(&:hash).join + method
  MultiJson.cached_options[cache_key] ||= yield
end
collect_dump_options(options) click to toggle source
# File lib/multi_json/adapter.rb, line 32
def collect_dump_options(options)
  cache('dump', options){ collect_options(:dump_options, options).merge(options) }
end
collect_load_options(options) click to toggle source
# File lib/multi_json/adapter.rb, line 28
def collect_load_options(options)
  cache('load', options){ collect_options(:load_options, options).merge(options) }
end
collect_options(method, *args) click to toggle source
# File lib/multi_json/adapter.rb, line 36
def collect_options(method, *args)
  global, local = *[MultiJson, self].map{ |r| r.send(method, *args) }
  local.merge(global)
end