Class: Music::Transcription::Change::Immediate

Inherits:
Music::Transcription::Change show all
Includes:
Validatable
Defined in:
lib/music-transcription/model/change.rb,
lib/music-transcription/packing/change_packing.rb

Instance Attribute Summary

Attributes included from Validatable

#errors

Attributes inherited from Music::Transcription::Change

#duration, #value

Instance Method Summary collapse

Methods included from Validatable

#invalid?, #valid?, #validatables, #validate

Methods inherited from Music::Transcription::Change

#==, unpack

Constructor Details

#initialize(value) ⇒ Immediate

Returns a new instance of Immediate.



21
22
23
# File 'lib/music-transcription/model/change.rb', line 21

def initialize value
  super(value,0)
end

Instance Method Details

#check_methodsObject



25
26
27
# File 'lib/music-transcription/model/change.rb', line 25

def check_methods
  [ :ensure_zero_duration ]
end

#ensure_zero_durationObject



29
30
31
32
33
# File 'lib/music-transcription/model/change.rb', line 29

def ensure_zero_duration
  unless @duration == 0
    raise NonZeroError, "immediate change duration #{self.duration} must be 0"
  end
end

#packObject



6
7
8
# File 'lib/music-transcription/packing/change_packing.rb', line 6

def pack
  [ @value ]
end