Class: Fossilize::RingBuffer

Inherits:
Array
  • Object
show all
Defined in:
lib/fossilize/ring_buffer.rb

Instance Method Summary collapse

Constructor Details

#initialize(size) ⇒ RingBuffer

Returns a new instance of RingBuffer.



7
8
9
10
# File 'lib/fossilize/ring_buffer.rb', line 7

def initialize(size)
  @ring_size = size
  super(size)
end

Instance Method Details

#[](offset = 0) ⇒ Object

Access elements in the RingBuffer

offset will be typically negative!



23
24
25
# File 'lib/fossilize/ring_buffer.rb', line 23

def [](offset = 0)
  return self.array_element(- 1 + offset)
end

#array_elementObject



5
# File 'lib/fossilize/ring_buffer.rb', line 5

alias_method :array_element, :[]

#array_pushObject



4
# File 'lib/fossilize/ring_buffer.rb', line 4

alias_method :array_push, :push

#push(element) ⇒ Object



12
13
14
15
16
17
# File 'lib/fossilize/ring_buffer.rb', line 12

def push(element)
  if length == @ring_size
    shift # loose element
  end
  array_push element
end