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