Sha256: 5c929f27a93ce0a4fa1f91bb964706d372cc03952d7e87bc4281fa05b90989cf
Contents?: true
Size: 1.35 KB
Versions: 7
Compression:
Stored size: 1.35 KB
Contents
module Mutant module Parallel # Job source for parallel execution class Source include AbstractType NoJobError = Class.new(RuntimeError) # Return next job # # @return [Object] # # @raise [NoJobError] # when no next job is available # # @api private # abstract_method :next # Test if next job is available # # @return [Boolean] # # @api private # abstract_method :next? # Job source backed by a finite array class Array include Concord.new(:jobs) # Initialize objecto # # @return [undefined] # # @api private # def initialize(*) super @next_index = 0 end # Test if next job is available # # @return [Boolean] # # @api private # def next? @next_index < jobs.length end # Return next job # # @return [Object] # # @raise [NoJobError] # when no next job is available # # @api private # def next fail NoJobError unless next? jobs.fetch(@next_index).tap do @next_index += 1 end end end # Array end # Source end # Parallel end # Mutant
Version data entries
7 entries across 7 versions & 1 rubygems