Spec-Zone.ru › Ruby 3.2

класс 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

Ruby Core © 1993–2022 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API