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()
Alias for: has_default?
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