Class: Configue::ContainerAdapter
- Inherits:
-
Object
- Object
- Configue::ContainerAdapter
- Defined in:
- lib/configue/container_adapter.rb
Instance Method Summary collapse
- #config_method_name ⇒ Object
-
#initialize(container_class) ⇒ ContainerAdapter
constructor
A new instance of ContainerAdapter.
- #instance ⇒ Object
- #instance=(arg) ⇒ Object
- #new_container(hash) ⇒ Object
Constructor Details
#initialize(container_class) ⇒ ContainerAdapter
Returns a new instance of ContainerAdapter.
5 6 7 |
# File 'lib/configue/container_adapter.rb', line 5 def initialize(container_class) @class = container_class end |
Instance Method Details
#config_method_name ⇒ Object
31 32 33 |
# File 'lib/configue/container_adapter.rb', line 31 def config_method_name @class.instance_variable_get(:@config_access_name) end |
#instance ⇒ Object
13 14 15 |
# File 'lib/configue/container_adapter.rb', line 13 def instance @class.instance_variable_get(:@instance) end |
#instance=(arg) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 |
# 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) ⇒ Object
9 10 11 |
# File 'lib/configue/container_adapter.rb', line 9 def new_container(hash) self.instance = @class.new(hash) end |