Sha256: e4d37df410881b11367c156b494d5a91d5889a104a7749ddb0118b68978bcf9d

Contents?: true

Size: 362 Bytes

Versions: 9

Compression:

Stored size: 362 Bytes

Contents

require 'adrian/queue'

module Adrian
  class CompositeQueue < Queue
    def initialize(*queues)
      super()
      @queues = queues.flatten
    end

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

      nil
    end

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

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
adrian-2.0.2 lib/adrian/composite_queue.rb
adrian-2.0.1 lib/adrian/composite_queue.rb
adrian-2.0.0 lib/adrian/composite_queue.rb
adrian-1.5.0 lib/adrian/composite_queue.rb
adrian-1.4.0 lib/adrian/composite_queue.rb
adrian-1.3.3 lib/adrian/composite_queue.rb
adrian-1.3.2 lib/adrian/composite_queue.rb
adrian-1.3.1 lib/adrian/composite_queue.rb
adrian-1.3.0 lib/adrian/composite_queue.rb