class AudioStream::RingBuffer
Public Class Methods
new(*args, &block)
click to toggle source
# File lib/audio_stream/ring_buffer.rb, line 5 def initialize(*args, &block) @array = Array.new(*args, &block) @seek = 0 end
Public Instance Methods
[](idx)
click to toggle source
# File lib/audio_stream/ring_buffer.rb, line 19 def [](idx) @array[(idx+@seek) % @array.size] end
[]=(idx, val)
click to toggle source
# File lib/audio_stream/ring_buffer.rb, line 23 def []=(idx, val) @array[(idx+@seek) % @array.size] = val end
current()
click to toggle source
# File lib/audio_stream/ring_buffer.rb, line 27 def current self[0] end
current=(val)
click to toggle source
# File lib/audio_stream/ring_buffer.rb, line 31 def current=(val) self[0] = val end
each(&block)
click to toggle source
# File lib/audio_stream/ring_buffer.rb, line 10 def each(&block) Enumerator.new do|y| start = @seek @array.size.times {|i| y << self[i] } end.each(&block) end
rotate(step=1)
click to toggle source
# File lib/audio_stream/ring_buffer.rb, line 35 def rotate(step=1) @seek = (@seek + step) % @array.size end