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

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

Instance Method Summary collapse

Instance Method Details

#valueObject



126
127
128
129
130
131
132
133
134
135
136
137
138
# File 'lib/musa-dsl/neumalang/neumalang.rb', line 126

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