Class: Lazily::Dequeuer

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/lazily/dequeuing.rb

Instance Method Summary collapse

Methods included from Enumerable

#[], #chunk, #collect, #compact, #concat, #drop, #drop_while, #flat_map, #flatten, #grep, #in_threads, #lazily, #lazy?, #prefetch, #reject, #select, #slice_before, #take, #take_while, #uniq, #zip

Methods included from Enumerable

#lazily

Constructor Details

#initialize(queue, terminator = nil) ⇒ Dequeuer

Returns a new instance of Dequeuer.



17
18
19
20
# File 'lib/lazily/dequeuing.rb', line 17

def initialize(queue, terminator = nil)
  @queue = queue
  @terminator = terminator
end

Instance Method Details

#eachObject



22
23
24
25
26
27
28
# File 'lib/lazily/dequeuing.rb', line 22

def each
  loop do
    next_value = @queue.pop
    break if @terminator === next_value
    yield next_value
  end
end