Class: ParallelSpecs::Grouper

Inherits:
Object
  • Object
show all
Defined in:
lib/parallel_specs/grouper.rb

Class Method Summary collapse

Class Method Details

.in_even_groups_by_size(items, num_groups, _options = {}) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/parallel_specs/grouper.rb', line 6

def in_even_groups_by_size(items, num_groups, _options = {})
  groups = Array.new(num_groups) { { items: [], size: 0 } }

  items_to_group(items).each do |item, size|
    group = groups.min_by { |entry| entry[:size] }
    group[:items] << item
    group[:size] += (size || 1)
  end

  groups.map { |group| group[:items].sort }
end