module ConfigX::Interface::Base

Public Instance Methods

clone() click to toggle source
Calls superclass method
# File lib/config_x/interface/base.rb, line 21
def clone
  cloned = super
  cloned_store = config_store.clone
  cloned.instance_variable_set(:@config_store, cloned_store)
  cloned.instance_variable_set(:@config, NamespaceDelegator.new(cloned))
  cloned
end
config() click to toggle source
# File lib/config_x/interface/base.rb, line 8
def config
  @config ||= NamespaceDelegator.new(self)
end
configure() { |config| ... } click to toggle source
# File lib/config_x/interface/base.rb, line 12
def configure
  yield(config)
end
configure!() { |config| ... } click to toggle source
# File lib/config_x/interface/base.rb, line 16
def configure!
  yield(config)
  config_store.freeze
end

Private Instance Methods

config_store() click to toggle source
# File lib/config_x/interface/base.rb, line 44
def config_store
  @config_store ||= {}
end
evaluate_config_proc_or_value(value, instance_exec: false) click to toggle source
# File lib/config_x/interface/base.rb, line 48
def evaluate_config_proc_or_value(value, instance_exec: false)
  return unless value
  return value unless value.respond_to?(:call)

  if instance_exec
    value.arity == 1 ? instance_exec(self, &value) : instance_exec(&value)
  else
    value.call
  end
end
store_map() click to toggle source
# File lib/config_x/interface/base.rb, line 59
def store_map
  if is_a?(Class)
    instance_variable_get(:@store_maps)[:class]
  else
    self.class.instance_variable_get(:@store_maps)[:instance]
  end
end