Class: Carpenter::Model::AttributesContainer

Inherits:
Object
  • Object
show all
Defined in:
lib/struct_declaration.rb,
lib/carpenter/model/attributes_container.rb

Instance Method Summary collapse

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

#dupObject



28
# File 'lib/carpenter/model/attributes_container.rb', line 28

def dup = self.class.new(self)

#valuesObject



27
# File 'lib/carpenter/model/attributes_container.rb', line 27

def values = @attributes.values