Sha256: 66ce6fc5dc134ec5896ed210fee14e45e1e07b679624e712a57362d1839abd5b

Contents?: true

Size: 826 Bytes

Versions: 1

Compression:

Stored size: 826 Bytes

Contents

module Reqless
  module JobReservers
    module Strategies
    end
  end
end

module Reqless::JobReservers::Strategies::Ordering
  # Shuffles the underlying enumerable
  # for each iteration.
  # @param [Enumerable] enumerable - underlying enumerator to iterate over
  def self.shuffled(enumerable)
    Enumerator.new do |yielder|
      enumerable.to_a.shuffle.each do |e|
        yielder << e
      end
    end
  end

  # Samples a subset of the underlying enumerable
  # for each iteration.
  # @param [Enumerable] enumerable - underlying enumerator to iterate over
  # @param [Integer] sample_size   - number of items to take per iteration
  def self.sampled(enumerable, sample_size = 5)
    Enumerator.new do |yielder|
      enumerable.to_a.sample(sample_size).each do |e|
        yielder << e
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
reqless-0.0.5 lib/reqless/job_reservers/strategies/ordering.rb