類別 Reline::KillRing::RingBuffer

屬性

head[R]
size[R]

公開類別方法

new(max = 1024) 按一下以切換來源
# File lib/reline/kill_ring.rb, line 25
def initialize(max = 1024)
  @max = max
  @size = 0
  @head = nil # reading head of ring-shaped tape
end

公開執行個體方法

<<(point) 按一下以切換來源
# File lib/reline/kill_ring.rb, line 31
def <<(point)
  if @size.zero?
    @head = point
    @head.backward = @head
    @head.forward = @head
    @size = 1
  elsif @size >= @max
    tail = @head.forward
    new_tail = tail.forward
    @head.forward = point
    point.backward = @head
    new_tail.backward = point
    point.forward = new_tail
    @head = point
  else
    tail = @head.forward
    @head.forward = point
    point.backward = @head
    tail.backward = point
    point.forward = tail
    @head = point
    @size += 1
  end
end
empty?() 按一下以切換來源
# File lib/reline/kill_ring.rb, line 56
def empty?
  @size.zero?
end