class Track

Public Class Methods

new(key, measures = []) click to toggle source
# File lib/kuromusic/Track.rb, line 6
def initialize(key, measures = [])
  @key = key
  @measures = measures
end

Public Instance Methods

+(other) click to toggle source
# File lib/kuromusic/Track.rb, line 79
def +(other)
  tmp = []
  if other.class.to_s == "Track"
    tmp.push(@measures)
    other.each{|e|
      tmp.push(e)
    }
    tmp.flatten!
  else
    self.error_puts("ArgumentTypeError", "undefined method `+'")
  end
  Track.new(@key, tmp)
end
[](index) click to toggle source
# File lib/kuromusic/Track.rb, line 11
def [](index)
  @measures[index]
end
[]=(index, obj) click to toggle source
# File lib/kuromusic/Track.rb, line 15
def []=(index, obj)
  if obj.class.to_s == "Measure"
    @measures[index] = obj
  else
    self.error_puts("ArgumentTypeError", "undefined method `+'")
  end
end
each() { |e| ... } click to toggle source
# File lib/kuromusic/Track.rb, line 50
def each()
  @measures.each {|e|
    yield(e)
  }
end
each_with_index() { |e| ... } click to toggle source
# File lib/kuromusic/Track.rb, line 56
def each_with_index()
  @measures.each {|e|
    yield(e)
  }
end
insert(index, *objs) click to toggle source
# File lib/kuromusic/Track.rb, line 23
def insert(index, *objs)
  objs.each {|e|
    if e.class.to_s != "Measure"
      self.error_puts("ArgumentTypeError", "undefined method `+'")
    end
  }
  @measures.insert(index, *objs)
end
inspect() click to toggle source
# File lib/kuromusic/Track.rb, line 93
  def inspect()
    "[
  Track Meta: < key = #{@key} >
  ----------------------------------------------------------
  " + @measures.each_with_index.map{|m, i|
    "Measure #{i+1}:\n" + m.inspect(@key)
  }.join("\n  ----------------------------------------------------------\n  ") + "
]"
  end
length() click to toggle source
# File lib/kuromusic/Track.rb, line 75
def length()
  @measure.length
end
map() { |e| ... } click to toggle source
# File lib/kuromusic/Track.rb, line 62
def map()
  result = @measures.map {|e|
    yield(e)
  }
  Track.new(result)
end
map!() { |e| ... } click to toggle source
# File lib/kuromusic/Track.rb, line 69
def map!()
  @measures.map! {|e|
    yield(e)
  }
end
push(obj) click to toggle source
# File lib/kuromusic/Track.rb, line 32
def push(obj)
  if obj.class.to_s == "Measure"
    @measures.push(obj)
  else
    self.error_puts("ArgumentTypeError", "undefined method `+'")
  end
  self
end
unshift(obj) click to toggle source
# File lib/kuromusic/Track.rb, line 41
def unshift(obj)
  if obj.class.to_s == "Measure"
    @measures.unshift(obj)
  else
    self.error_puts("ArgumentTypeError", "undefined method `+'")
  end
  self
end