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 24 def dump(object, options = {}) instance.dump(object, cached_dump_options(options)) end
load(string, options = {})
click to toggle source
# File lib/multi_json/adapter.rb, line 18 def load(string, options = {}) fail self::ParseError if blank?(string) string = string.read if string.respond_to?(:read) instance.load(string, cached_load_options(options)) end
Private Class Methods
blank?(input)
click to toggle source
# File lib/multi_json/adapter.rb, line 30 def blank?(input) input.nil? || /\A\s*\z/ === input rescue ArgumentError # invalid byte sequence in UTF-8 false end
cached_dump_options(options)
click to toggle source
# File lib/multi_json/adapter.rb, line 36 def cached_dump_options(options) OptionsCache.fetch(:dump, options) do dump_options(options).merge(MultiJson.dump_options(options)).merge!(options) end end
cached_load_options(options)
click to toggle source
# File lib/multi_json/adapter.rb, line 42 def cached_load_options(options) OptionsCache.fetch(:load, options) do load_options(options).merge(MultiJson.load_options(options)).merge!(options) end end