class Flumtter::Window::Buf::Buf

Attributes

cursor[RW]

Public Class Methods

new(base_cls=Element) click to toggle source
# File lib/flumtter/app/core/windows/buf_window.rb, line 10
def initialize(base_cls=Element)
  @base_cls = base_cls
  @buf = []
  @cursor = 0
end

Public Instance Methods

[](key) click to toggle source
# File lib/flumtter/app/core/windows/buf_window.rb, line 28
def [](key)
  elem = @buf[key]
  raise NoMoreData unless elem
  elem
end
add(object) click to toggle source
# File lib/flumtter/app/core/windows/buf_window.rb, line 40
def add(object)
  @buf << @base_cls.new(object, @buf.size)
end
adds(objects) click to toggle source
# File lib/flumtter/app/core/windows/buf_window.rb, line 34
def adds(objects)
  objects.each do |obj|
    @buf << @base_cls.new(obj, @buf.size)
  end
end
cursor=(n) click to toggle source
# File lib/flumtter/app/core/windows/buf_window.rb, line 16
def cursor=(n)
  if n <= 0
    @cursor = 0
  else
    @cursor = n
  end
end
get() click to toggle source
# File lib/flumtter/app/core/windows/buf_window.rb, line 44
def get
  if @buf[@cursor].nil?
    prefetch
  end
  elem = @buf[@cursor]
  @cursor += 1
  raise NoMoreData unless elem
  elem
end
prev() click to toggle source
# File lib/flumtter/app/core/windows/buf_window.rb, line 54
def prev
  @cursor -= 1
end
size() click to toggle source
# File lib/flumtter/app/core/windows/buf_window.rb, line 24
def size
  @buf.size
end