Class: Configr::ConfigurationBlock
- Inherits:
-
Object
- Object
- Configr::ConfigurationBlock
- Defined in:
- lib/configr/configuration_block.rb
Instance Attribute Summary collapse
-
#attributes ⇒ Object
Returns the value of attribute attributes.
Instance Method Summary collapse
-
#initialize(attributes = {}) ⇒ ConfigurationBlock
constructor
A new instance of ConfigurationBlock.
- #method_missing(method, *args, &block) ⇒ Object
Constructor Details
#initialize(attributes = {}) ⇒ ConfigurationBlock
Returns a new instance of ConfigurationBlock.
5 6 7 |
# File 'lib/configr/configuration_block.rb', line 5 def initialize(attributes={}) self.attributes = Hash.new(attributes) end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args, &block) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/configr/configuration_block.rb', line 9 def method_missing(method, *args, &block) name = method.to_s case when name.include?('=') key = name.gsub('=','').to_sym self.attributes[key] = args.first when existing_block_attributes = self.attributes[method] existing_block = ConfigurationBlock.new(existing_block_attributes) self.attributes[method] = existing_block.attributes existing_block else nested_block = ConfigurationBlock.new self.attributes[method] = nested_block.attributes nested_block end end |
Instance Attribute Details
#attributes ⇒ Object
Returns the value of attribute attributes.
3 4 5 |
# File 'lib/configr/configuration_block.rb', line 3 def attributes @attributes end |