Module: Enumerable

Defined in:
lib/core/enumerable.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.all_combinations(source) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/core/enumerable.rb', line 3

def self.all_combinations source
  result_count = source.map(&:size).inject :*
  group_count = 1
  result = []
  source.each do |elems|
    row = []
    group_count.times do
      elems.each do |elem|
        (result_count / group_count / elems.size).times { row << elem }
      end
    end
    group_count *= elems.size
    result << row
  end
  result.transpose
end

Instance Method Details

#pairsObject



20
21
22
# File 'lib/core/enumerable.rb', line 20

def pairs
  respond_to?(:combination) ? combination(2) : to_a.combination(2)
end