Sha256: ae60854fc2c5022c4cc6fe7b3882f7ede7df2bd370f6d87702eb6ed0bb90ccd1

Contents?: true

Size: 981 Bytes

Versions: 1

Compression:

Stored size: 981 Bytes

Contents

require 'uri'
require 'cgi'

require 'ci/queue/version'
require 'ci/queue/output_helpers'
require 'ci/queue/circuit_breaker'
require 'ci/queue/configuration'
require 'ci/queue/common'
require 'ci/queue/build_record'
require 'ci/queue/static'
require 'ci/queue/file'
require 'ci/queue/bisect'

module CI
  module Queue
    extend self

    attr_accessor :shuffler

    module Warnings
      RESERVED_LOST_TEST = :RESERVED_LOST_TEST
    end

    def shuffle(tests, random)
      if shuffler
        shuffler.call(tests, random)
      else
        tests.sort.shuffle(random: random)
      end
    end

    def from_uri(url, config)
      uri = URI(url)
      implementation = case uri.scheme
      when 'list'
        Static
      when 'file', nil
        File
      when 'redis'
        require 'ci/queue/redis'
        Redis
      else
        raise ArgumentError, "Don't know how to handle #{uri.scheme} URLs"
      end
      implementation.from_uri(uri, config)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ci-queue-0.16.0 lib/ci/queue.rb