class Configue::ContainerAdapter

Public Class Methods

new(container_class) click to toggle source
# File lib/configue/container_adapter.rb, line 5
def initialize(container_class)
  @class = container_class
end

Public Instance Methods

config_method_name() click to toggle source
# File lib/configue/container_adapter.rb, line 31
def config_method_name
  @class.instance_variable_get(:@config_access_name)
end
instance() click to toggle source
# File lib/configue/container_adapter.rb, line 13
def instance
  @class.instance_variable_get(:@instance)
end
instance=(arg) click to toggle source
# File lib/configue/container_adapter.rb, line 17
def instance=(arg)
  raise TypeError unless arg.respond_to?(:[])

  @class.instance_variable_set(:@instance, arg)
  if arg.respond_to?(:keys)
    sig = class << @class; self; end
    arg.keys.each do |k|
      next unless k.to_s =~ /\A\w[\w0-9]*\z/
      sig.__send__(:define_method, k, -> { arg[k] })
    end
  end
  arg
end
new_container(hash) click to toggle source
# File lib/configue/container_adapter.rb, line 9
def new_container(hash)
  self.instance = @class.new(hash)
end