Class: Carpenter::Model::AttributesContainer
- Inherits:
-
Object
- Object
- Carpenter::Model::AttributesContainer
- Defined in:
- lib/struct_declaration.rb,
lib/carpenter/model/attributes_container.rb
Instance Method Summary collapse
- #<<(attribute) ⇒ Object
- #[](name) ⇒ Object
- #add_attribute(attribute) ⇒ Object
- #dup ⇒ Object
-
#initialize(container = nil) ⇒ AttributesContainer
constructor
A new instance of AttributesContainer.
- #values ⇒ Object
Constructor Details
#initialize(container = nil) ⇒ AttributesContainer
Returns a new instance of AttributesContainer.
3 4 5 6 7 8 9 10 |
# File 'lib/carpenter/model/attributes_container.rb', line 3 def initialize(container = nil) @attributes = {} return if container.nil? container.values.each do |value| add_attribute(value.dup) end end |
Instance Method Details
#<<(attribute) ⇒ Object
26 |
# File 'lib/carpenter/model/attributes_container.rb', line 26 def <<(attribute) = add_attribute(attribute) |
#[](name) ⇒ Object
12 13 14 15 16 |
# File 'lib/carpenter/model/attributes_container.rb', line 12 def [](name) raise "Attribute with name #{name} not exists" unless @attributes[name] @attributes[name] end |
#add_attribute(attribute) ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/carpenter/model/attributes_container.rb', line 18 def add_attribute(attribute) name = attribute.name raise "Attribute with name #{name} already exists" if @attributes[name] @attributes[name] = attribute attribute end |
#dup ⇒ Object
28 |
# File 'lib/carpenter/model/attributes_container.rb', line 28 def dup = self.class.new(self) |
#values ⇒ Object
27 |
# File 'lib/carpenter/model/attributes_container.rb', line 27 def values = @attributes.values |