class Mixlib::Config::Configurable
Attributes
Public Class Methods
Source
# File lib/mixlib/config/configurable.rb, line 26 def initialize(symbol) @symbol = symbol end
Public Instance Methods
Source
# File lib/mixlib/config/configurable.rb, line 69 def default if default_block? default_block.call else default_value end end
Source
# File lib/mixlib/config/configurable.rb, line 38 def default_block? instance_variable_defined?(:@default_block) end
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
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
Source
# File lib/mixlib/config/configurable.rb, line 30 def has_default? instance_variable_defined?(:@default_value) end
Also aliased as: has_default
Source
# File lib/mixlib/config/configurable.rb, line 77 def is_default?(config) !config.key?(symbol) || config[symbol] == default_value end
Source
# File lib/mixlib/config/configurable.rb, line 65 def set(config, value) config[symbol] = writes_value? ? @writes_value.call(value) : value end
Source
# File lib/mixlib/config/configurable.rb, line 50 def writes_value(&block) @writes_value = block self end
Source
# File lib/mixlib/config/configurable.rb, line 34 def writes_value? instance_variable_defined?(:@writes_value) end
Private Instance Methods
Source
# File lib/mixlib/config/configurable.rb, line 83 def safe_dup(e) e.dup rescue TypeError e end