Module: Musa::Neumalang::Neumalang::Parser::NeumaAsAttributes

Defined in:
lib/musa-dsl/neumalang/neumalang.rb

Instance Method Summary collapse

Instance Method Details

#valueObject



115
116
117
118
119
120
121
122
123
124
125
126
127
# File 'lib/musa-dsl/neumalang/neumalang.rb', line 115

def value
  h = {}.extend Musa::Datasets::GDVd

  capture(:grade)&.value&.tap { |_| h.merge! _ if _ }
  capture(:octave)&.value&.tap { |_| h.merge! _ if _ }
  capture(:duration)&.value&.tap { |_| h.merge! _ if _ }
  capture(:velocity)&.value&.tap { |_| h.merge! _ if _ }

  h[:modifiers] = {} unless captures(:modifiers).empty?
  captures(:modifiers).collect(&:value).each { |_| h[:modifiers].merge! _ if _ }

  { kind: :gdvd, gdvd: h }.extend Musa::Neumas::Neuma
end