Method: FigTree::ConfigStruct#setting

Defined in:
lib/fig_tree.rb

#setting(name, default_value = nil, default_proc: nil, removed: false, &block) ⇒ Object

Define a setting with the given name.

Parameters:

  • name (Symbol)
  • default_value (Object) (defaults to: nil)
  • default_proc (Proc) (defaults to: nil)


131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# File 'lib/fig_tree.rb', line 131

def setting(name, default_value=nil, default_proc: nil, removed: false, &block)
  if block_given?
    # Create a nested setting
    setting_config = @settings[name]&.value || ConfigStruct.new("#{@name}.#{name}")
    setting = ConfigValue.new
    setting.value = setting_config
    @settings[name] = setting
    setting_config.instance_eval(&block)
  else
    setting = ConfigValue.new
    setting.default_proc = default_proc
    setting.default_value = default_value
    setting.reset_values
    setting.removed = removed
    @settings[name] = setting
  end
end