Sha256: 901b2a1e4d2f16be233414f8f2075d4fd488045ea2b19ba067c4a8d316851a20

Contents?: true

Size: 446 Bytes

Versions: 21

Compression:

Stored size: 446 Bytes

Contents

module Unipept

  class BatchOrder

    attr_reader :order

    def initialize
      @order = {}
      @current = 0
    end

    def wait(i, &block)
      if i == @current
        # start writing + those who have been waiting as well
        block.call
        @current += 1
        while order[@current]
          order.delete(@current).call
          @current += 1
        end
      else
        @order[i] = block
      end
    end

  end

end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
unipept-0.7.1 lib/unipept/batch_order.rb
unipept-0.7.0 lib/unipept/batch_order.rb
unipept-0.6.4 lib/unipept/batch_order.rb
unipept-0.6.2 lib/unipept/batch_order.rb
unipept-0.6.1 lib/unipept/batch_order.rb
unipept-0.5.7 lib/unipept/batch_order.rb
unipept-0.5.6 lib/unipept/batch_order.rb
unipept-0.5.5 lib/unipept/batch_order.rb
unipept-0.5.4 lib/unipept/batch_order.rb
unipept-0.5.3 lib/unipept/batch_order.rb
unipept-0.5.2 lib/unipept/batch_order.rb
unipept-0.5.1 lib/unipept/batch_order.rb
unipept-0.5.0 lib/unipept/batch_order.rb
unipept-0.4.2 lib/unipept/batch_order.rb
unipept-0.4.1 lib/unipept/batch_order.rb
unipept-0.4.0 lib/unipept/batch_order.rb
unipept-0.3.5 lib/unipept/batch_order.rb
unipept-0.3.4 lib/unipept/batch_order.rb
unipept-0.3.3 lib/unipept/batch_order.rb
unipept-0.3.2 lib/unipept/batch_order.rb