Class: MusicalScore::Part::Part

Inherits:
ElementBase show all
Includes:
Contracts
Defined in:
lib/musical_score/part/part.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(measures) ⇒ Part

Returns a new instance of Part.



14
15
16
# File 'lib/musical_score/part/part.rb', line 14

def initialize(measures)
    @measures = measures
end

Instance Attribute Details

#measuresObject

Returns the value of attribute measures.



12
13
14
# File 'lib/musical_score/part/part.rb', line 12

def measures
  @measures
end

Class Method Details

.create_by_hash(doc) ⇒ Object



30
31
32
33
34
35
36
37
38
# File 'lib/musical_score/part/part.rb', line 30

def self.create_by_hash(doc)
    measure_array = Array.new
    doc["measure"].each do |element|
        measure = MusicalScore::Part::Measure.create_by_hash(element)
        measure_array.push(measure)
    end
    measures = MusicalScore::Measures.new(measure_array)
    return MusicalScore::Part::Part.new(measures)
end

.create_by_xml(xml_doc) ⇒ Object



19
20
21
22
23
24
25
26
27
# File 'lib/musical_score/part/part.rb', line 19

def self.create_by_xml(xml_doc)
    measure_array = Array.new
    xml_doc.elements.each("//measure") do |element|
        measure = MusicalScore::Part::Measure.create_by_xml(element)
        measure_array.push(measure)
    end
    measures = MusicalScore::Measures.new(measure_array)
    return MusicalScore::Part::Part.new(measures)
end

Instance Method Details

#export_xml(number) ⇒ Object



40
41
42
43
44
45
46
47
48
49
# File 'lib/musical_score/part/part.rb', line 40

def export_xml(number)
    part = REXML::Element.new('part')
    part.add_attribute('id', "P" + number.to_s)

    @measures.each do |measure|
        part.add_element(measure.export_xml)
    end

    return part
end

#set_locationObject



51
52
53
# File 'lib/musical_score/part/part.rb', line 51

def set_location
    @measures.set_location
end