Module: Qmore::Reservers::Strategies::Ordering

Defined in:
lib/qmore/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



17
18
19
20
21
22
23
# File 'lib/qmore/reservers/strategies/ordering.rb', line 17

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



5
6
7
8
9
10
11
# File 'lib/qmore/reservers/strategies/ordering.rb', line 5

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