class Memory::Deque
Public Class Methods
new()
click to toggle source
# File lib/memory/deque.rb, line 28 def initialize @segments = [] @last = nil end
Public Instance Methods
<<(item)
click to toggle source
# File lib/memory/deque.rb, line 51 def << item unless @last @last = [] @segments << @last end @last << item return self end
concat(segment)
click to toggle source
# File lib/memory/deque.rb, line 44 def concat(segment) @segments << segment @last = nil return self end
each(&block)
click to toggle source
# File lib/memory/deque.rb, line 62 def each(&block) @segments.each do |segment| segment.each(&block) end end
freeze()
click to toggle source
Calls superclass method
# File lib/memory/deque.rb, line 33 def freeze return self if frozen? @segments.each(&:freeze) @last = nil super end
size()
click to toggle source
# File lib/memory/deque.rb, line 68 def size @segments.sum(&:size) end