Class: Adrian::CompositeQueue

Inherits:
Queue
  • Object
show all
Defined in:
lib/adrian/composite_queue.rb

Instance Method Summary collapse

Methods inherited from Queue

#length, #max_age, #pop_item, #push_item, #verify_age!

Constructor Details

#initialize(*queues) ⇒ CompositeQueue

Returns a new instance of CompositeQueue.



5
6
7
8
# File 'lib/adrian/composite_queue.rb', line 5

def initialize(*queues)
  super()
  @queues = queues.flatten
end

Instance Method Details

#popObject



10
11
12
13
14
15
16
17
# File 'lib/adrian/composite_queue.rb', line 10

def pop
  @queues.each do |q|
    item = q.pop
    return item if item
  end

  nil
end

#push(item) ⇒ Object



19
20
21
# File 'lib/adrian/composite_queue.rb', line 19

def push(item)
  raise "You can not push item to a composite queue"
end