Sha256: 75996b22939ac5f639c71366714ccd0060eb3e0309dc3feb43867ef6ec0c98ca

Contents?: true

Size: 348 Bytes

Versions: 6

Compression:

Stored size: 348 Bytes

Contents

require 'adrian/queue'

module Adrian
  class CompositeQueue < Queue
    def initialize(*queues)
      @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

6 entries across 6 versions & 1 rubygems

Version Path
adrian-1.2.0 lib/adrian/composite_queue.rb
adrian-1.1.2 lib/adrian/composite_queue.rb
adrian-1.1.1 lib/adrian/composite_queue.rb
adrian-1.1.0 lib/adrian/composite_queue.rb
adrian-1.0.1 lib/adrian/composite_queue.rb
adrian-1.0.0 lib/adrian/composite_queue.rb