Module: JsonModel::Config::Options

Included in:
JsonModel::Config
Defined in:
lib/json_model/config/options.rb

Instance Method Summary collapse

Instance Method Details

#defaultsHash

Returns:

  • (Hash)


7
8
9
# File 'lib/json_model/config/options.rb', line 7

def defaults
  @defaults ||= {}
end

#option(name, default: nil, &transformation) ⇒ Object

Parameters:

  • name (Symbol)
  • default (Object) (defaults to: nil)
  • transformation (Proc, nil)


19
20
21
22
23
24
25
26
27
28
29
# File 'lib/json_model/config/options.rb', line 19

def option(name, default: nil, &transformation)
  define_method(name) { settings[name] }
  define_method("#{name}=") do |value|
    settings[name] = transformation.nil? ? value : transformation.call(value)
  end
  module_function(name)
  module_function("#{name}=")

  defaults[name] = transformation.nil? ? default : transformation.call(default)
  settings[name] = defaults[name]
end

#settingsHash

Returns:

  • (Hash)


12
13
14
# File 'lib/json_model/config/options.rb', line 12

def settings
  @settings ||= {}
end