类 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