Class: Memory::Deque
Instance Method Summary collapse
- #<<(item) ⇒ Object
- #concat(segment) ⇒ Object
- #each(&block) ⇒ Object
- #freeze ⇒ Object
-
#initialize ⇒ Deque
constructor
A new instance of Deque.
- #size ⇒ Object
Constructor Details
#initialize ⇒ Deque
Returns a new instance of Deque.
11 12 13 14 |
# File 'lib/memory/deque.rb', line 11 def initialize @segments = [] @last = nil end |
Instance Method Details
#<<(item) ⇒ Object
34 35 36 37 38 39 40 41 42 43 |
# File 'lib/memory/deque.rb', line 34 def << item unless @last @last = [] @segments << @last end @last << item return self end |
#concat(segment) ⇒ Object
27 28 29 30 31 32 |
# File 'lib/memory/deque.rb', line 27 def concat(segment) @segments << segment @last = nil return self end |
#each(&block) ⇒ Object
45 46 47 48 49 |
# File 'lib/memory/deque.rb', line 45 def each(&block) @segments.each do |segment| segment.each(&block) end end |
#freeze ⇒ Object
16 17 18 19 20 21 22 23 |
# File 'lib/memory/deque.rb', line 16 def freeze return self if frozen? @segments.each(&:freeze) @last = nil super end |
#size ⇒ Object
51 52 53 |
# File 'lib/memory/deque.rb', line 51 def size @segments.sum(&:size) end |