module Gabc::WordNode
Public Instance Methods
create_word()
click to toggle source
# File lib/lygre/gabcsemantics.rb, line 81 def create_word w = [] each_element do |ele| next unless ele.is_a? SyllableNode w << GabcSyllable.new do |s| s.lyrics = ele.lyrics.text_value s.notes = collect_notes ele end end return GabcWord.new w end
Private Instance Methods
collect_notes(node, arr=[])
click to toggle source
recursively collects notes from a node
# File lib/lygre/gabcsemantics.rb, line 98 def collect_notes(node, arr=[]) node.each_element do |ele| if ele.is_a? NoteNode then arr << GabcNote.new do |n| n.pitch = ele.note_pitch.text_value.downcase.to_sym n.text_value = ele.text_value end elsif ele.is_a? DivisioNode then arr << GabcDivisio.new do |d| d.type = ele.text_value d.text_value = ele.text_value end elsif ele.is_a? ClefNode then arr << GabcClef.new do |c| c.pitch = ele.clef_symbol.text_value.to_sym c.bemol = ele.bemol.text_value == 'b' c.line = ele.line_number.text_value.to_i c.text_value = ele.text_value end else collect_notes ele, arr end end return arr end