module MultiJson::Options

Mixin providing configurable load/dump options

Supports static hashes or dynamic callables (procs/lambdas). Extended by both MultiJson (global options) and Adapter classes.

@api private

Constants

EMPTY_OPTIONS

Public Instance Methods

default_dump_options() click to toggle source

Get default dump options

@api private @return [Hash] frozen empty hash

# File lib/multi_json/options.rb, line 60
def default_dump_options
  @default_dump_options ||= EMPTY_OPTIONS
end
default_load_options() click to toggle source

Get default load options

@api private @return [Hash] frozen empty hash

# File lib/multi_json/options.rb, line 52
def default_load_options
  @default_load_options ||= EMPTY_OPTIONS
end
dump_options(...) click to toggle source

Get options for dump operations

@api private @return [Hash] resolved options hash

# File lib/multi_json/options.rb, line 44
def dump_options(...)
  resolve_options(@dump_options, ...) || default_dump_options
end
dump_options=(options) click to toggle source

Set options for dump operations

@api private @param options [Hash, Proc] options hash or callable @return [Hash, Proc] the options

# File lib/multi_json/options.rb, line 27
def dump_options=(options)
  OptionsCache.reset
  @dump_options = options
end
load_options(...) click to toggle source

Get options for load operations

@api private @return [Hash] resolved options hash

# File lib/multi_json/options.rb, line 36
def load_options(...)
  resolve_options(@load_options, ...) || default_load_options
end
load_options=(options) click to toggle source

Set options for load operations

@api private @param options [Hash, Proc] options hash or callable @return [Hash, Proc] the options

# File lib/multi_json/options.rb, line 17
def load_options=(options)
  OptionsCache.reset
  @load_options = options
end

Private Instance Methods

invoke_callable(callable, ...) click to toggle source

Invokes a callable options provider

@api private @param callable [Proc] options provider @return [Hash] options returned by the callable

# File lib/multi_json/options.rb, line 82
def invoke_callable(callable, ...)
  callable.arity.zero? ? callable.call : callable.call(...)
end
resolve_options(options, ...) click to toggle source

Resolves options from a hash or callable

@api private @param options [Hash, Proc, nil] options configuration @return [Hash, nil] resolved options hash

# File lib/multi_json/options.rb, line 71
def resolve_options(options, ...)
  return invoke_callable(options, ...) if options.respond_to?(:call)

  options.to_hash if options.respond_to?(:to_hash)
end