Sha256: be0856538f46fe7c8ed8d0c180c36772ef2a57fbfd16100e72f511b3bf5ea3e6
Contents?: true
Size: 1.03 KB
Versions: 1
Compression:
Stored size: 1.03 KB
Contents
module Music module Transcription class Change attr_accessor :value, :duration def initialize value, duration @value = value @duration = duration end def ==(other) self.class == other.class && self.value == other.value && self.duration == other.duration end class Immediate < Change include Validatable def initialize value super(value,0) end def check_methods [ :ensure_zero_duration ] end def ensure_zero_duration unless @duration == 0 raise NonZeroError, "immediate change duration #{self.duration} must be 0" end end end class Gradual < Change include Validatable def initialize value, transition_duration super(value, transition_duration) end def check_methods [ :ensure_nonnegative_duration ] end def ensure_nonnegative_duration if @duration < 0 raise NegativeError, "gradual change duration #{self.duration} must be non-negative" end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
music-transcription-0.19.0 | lib/music-transcription/model/change.rb |