Module: Reqless::JobReservers::Strategies::Ordering

Defined in:
lib/reqless/job_reservers/strategies/ordering.rb

Class Method Summary collapse

Class Method Details

.sampled(enumerable, sample_size = 5) ⇒ Object

Samples a subset of the underlying enumerable for each iteration.

Parameters:

  • enumerable (Enumerable)
    • underlying enumerator to iterate over

  • sample_size (Integer) (defaults to: 5)
    • number of items to take per iteration



24
25
26
27
28
29
30
# File 'lib/reqless/job_reservers/strategies/ordering.rb', line 24

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

.shuffled(enumerable) ⇒ Object

Shuffles the underlying enumerable for each iteration.

Parameters:

  • enumerable (Enumerable)
    • underlying enumerator to iterate over



12
13
14
15
16
17
18
# File 'lib/reqless/job_reservers/strategies/ordering.rb', line 12

def self.shuffled(enumerable)
  Enumerator.new do |yielder|
    enumerable.to_a.shuffle.each do |e|
      yielder << e
    end
  end
end