class Mixlib::Config::Configurable
Attributes
default_block[R]
default_value[R]
symbol[R]
Public Class Methods
new(symbol)
click to toggle source
# File lib/mixlib/config/configurable.rb, line 26 def initialize(symbol) @symbol = symbol end
Public Instance Methods
default()
click to toggle source
# File lib/mixlib/config/configurable.rb, line 69 def default if default_block? default_block.call else default_value end end
default_block?()
click to toggle source
# File lib/mixlib/config/configurable.rb, line 38 def default_block? instance_variable_defined?(:@default_block) end
defaults_to(default_value = nil, &block)
click to toggle source
# File lib/mixlib/config/configurable.rb, line 44 def defaults_to(default_value = nil, &block) @default_value = default_value @default_block = block if block_given? self end
get(config)
click to toggle source
# File lib/mixlib/config/configurable.rb, line 55 def get(config) if config.key?(symbol) config[symbol] elsif default_block? default_block.call else config[symbol] = safe_dup(default_value) end end
has_default?()
click to toggle source
# File lib/mixlib/config/configurable.rb, line 30 def has_default? instance_variable_defined?(:@default_value) end
Also aliased as: has_default
is_default?(config)
click to toggle source
# File lib/mixlib/config/configurable.rb, line 77 def is_default?(config) !config.key?(symbol) || config[symbol] == default_value end
set(config, value)
click to toggle source
# File lib/mixlib/config/configurable.rb, line 65 def set(config, value) config[symbol] = writes_value? ? @writes_value.call(value) : value end
writes_value(&block)
click to toggle source
# File lib/mixlib/config/configurable.rb, line 50 def writes_value(&block) @writes_value = block self end
writes_value?()
click to toggle source
# File lib/mixlib/config/configurable.rb, line 34 def writes_value? instance_variable_defined?(:@writes_value) end
Private Instance Methods
safe_dup(e)
click to toggle source
# File lib/mixlib/config/configurable.rb, line 83 def safe_dup(e) e.dup rescue TypeError e end