Class: Vedeu::Composition

Inherits:
Object
  • Object
show all
Defined in:
lib/vedeu/models/composition.rb

Direct Known Subclasses

API::Composition

Instance Method Summary collapse

Constructor Details

#initialize(attributes = {}) ⇒ Composition

Returns a new instance of Composition.



3
4
5
# File 'lib/vedeu/models/composition.rb', line 3

def initialize(attributes = {})
  @attributes = attributes
end

Instance Method Details

#attributesObject



7
8
9
# File 'lib/vedeu/models/composition.rb', line 7

def attributes
  @_attributes ||= defaults.merge!(@attributes)
end

#interfacesObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/vedeu/models/composition.rb', line 11

def interfaces
  @interfaces ||= if attributes[:interfaces].nil? || attributes[:interfaces].empty?
    []

  else
    [ attributes[:interfaces] ].flatten.map do |attrs|
      stored = Store.query(attrs[:name])

      combined = stored.merge(attrs) do |key, s, a|
        key == :lines && s.empty? ? a : s
      end

      Interface.new(combined)
    end

  end
end

#to_sObject



29
30
31
# File 'lib/vedeu/models/composition.rb', line 29

def to_s
  interfaces.map(&:to_s).join
end