class Reline::KillRing::RingBuffer
Attributes
Public Class Methods
Source
# 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
Public Instance Methods
Source
# 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
Ruby Core © 1993–2024 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.