Class: Musa::Neumas::Decoders::ProtoDecoder

Inherits:
Object
  • Object
show all
Defined in:
lib/musa-dsl/neumas/neuma-decoder.rb

Overview

Abstract base decoder class.

Defines the basic decoder interface. All decoders must implement:

  • decode(element) - Main decoding method
  • subcontext - Create independent decoder context

Subcontexts

Subcontexts allow creating independent decoder instances for nested structures (like grace notes) that need their own state tracking.

Direct Known Subclasses

DifferentialDecoder

Instance Method Summary collapse

Instance Method Details

#decode(_element) ⇒ Hash

Decodes element to musical event.

Abstract method - must be implemented by subclasses.

Parameters:

  • _element (Object)

    element to decode

Returns:

  • (Hash)

    decoded musical event

Raises:

  • (NotImplementedError)

    if not overridden



115
116
117
# File 'lib/musa-dsl/neumas/neuma-decoder.rb', line 115

def decode(_element)
  raise NotImplementedError
end

#subcontextProtoDecoder

Creates subcontext decoder.

Returns independent decoder instance for nested decoding. Default implementation returns self (stateless).

Returns:



100
101
102
# File 'lib/musa-dsl/neumas/neuma-decoder.rb', line 100

def subcontext
  self
end