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



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/json_model/config/options.rb', line 16

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

  defaults[name] = transformation.present? ? transformation.call(default) : 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