Sha256: 81d48b493e66a4948b1cbed386b02671cf2a48f696c59459ef45122375a9f561

Contents?: true

Size: 417 Bytes

Versions: 23

Compression:

Stored size: 417 Bytes

Contents

class Infobar::FIFO
  include Enumerable

  def initialize(n)
    @n = n
    clear
  end

  def max_size
    @n
  end

  def <<(value)
    @i += 1
    if @i > @n
      @values.shift
      @i -= 1
    end
    @values.push(value)
    self
  end

  def each(&block)
    @values.each(&block)
    self
  end

  def empty?
    @i.zero?
  end

  alias size count

  def clear
    @i = 0
    @values = []
    self
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
infobar-0.9.0 lib/infobar/fifo.rb
infobar-0.8.1 lib/infobar/fifo.rb
infobar-0.8.0 lib/infobar/fifo.rb
infobar-0.7.4 lib/infobar/fifo.rb
infobar-0.7.2 lib/infobar/fifo.rb
infobar-0.7.1 lib/infobar/fifo.rb
infobar-0.7.0 lib/infobar/fifo.rb
infobar-0.6.2 lib/infobar/fifo.rb
infobar-0.6.1 lib/infobar/fifo.rb
infobar-0.6.0 lib/infobar/fifo.rb
infobar-0.5.1 lib/infobar/fifo.rb
infobar-0.5.0 lib/infobar/fifo.rb
infobar-0.4.0 lib/infobar/fifo.rb
infobar-0.3.0 lib/infobar/fifo.rb
infobar-0.2.0 lib/infobar/fifo.rb
infobar-0.1.1 lib/infobar/fifo.rb
infobar-0.1.0 lib/infobar/fifo.rb
infobar-0.0.7 lib/infobar/fifo.rb
infobar-0.0.6 lib/infobar/fifo.rb
infobar-0.0.5 lib/infobar/fifo.rb