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.
28 29 30 31 |
# File 'lib/memory/deque.rb', line 28 def initialize @segments = [] @last = nil end |
Instance Method Details
#<<(item) ⇒ Object
51 52 53 54 55 56 57 58 59 60 |
# File 'lib/memory/deque.rb', line 51 def << item unless @last @last = [] @segments << @last end @last << item return self end |
#concat(segment) ⇒ Object
44 45 46 47 48 49 |
# File 'lib/memory/deque.rb', line 44 def concat(segment) @segments << segment @last = nil return self end |
#each(&block) ⇒ Object
62 63 64 65 66 |
# File 'lib/memory/deque.rb', line 62 def each(&block) @segments.each do |segment| segment.each(&block) end end |
#freeze ⇒ Object
33 34 35 36 37 38 39 40 |
# File 'lib/memory/deque.rb', line 33 def freeze return self if frozen? @segments.each(&:freeze) @last = nil super end |
#size ⇒ Object
68 69 70 |
# File 'lib/memory/deque.rb', line 68 def size @segments.sum(&:size) end |