Module: SimpleCov::RawCoverage

Defined in:
lib/simplecov/raw_coverage.rb

Class Method Summary collapse

Class Method Details

.merge_file_coverage(file1, file2) ⇒ Object



21
22
23
24
25
26
27
28
# File 'lib/simplecov/raw_coverage.rb', line 21

def merge_file_coverage(file1, file2)
  return (file1 || file2).dup unless file1 && file2

  file1.map.with_index do |count1, index|
    count2 = file2[index]
    merge_line_coverage(count1, count2)
  end
end

.merge_line_coverage(count1, count2) ⇒ Object



30
31
32
33
34
35
36
37
# File 'lib/simplecov/raw_coverage.rb', line 30

def merge_line_coverage(count1, count2)
  sum = count1.to_i + count2.to_i
  if sum.zero? && (count1.nil? || count2.nil?)
    nil
  else
    sum
  end
end

.merge_results(*results) ⇒ Object

Merges multiple Coverage.result hashes



6
7
8
9
10
# File 'lib/simplecov/raw_coverage.rb', line 6

def merge_results(*results)
  results.reduce({}) do |result, merged|
    merge_resultsets(result, merged)
  end
end

.merge_resultsets(result1, result2) ⇒ Object

Merges two Coverage.result hashes



13
14
15
16
17
18
19
# File 'lib/simplecov/raw_coverage.rb', line 13

def merge_resultsets(result1, result2)
  (result1.keys | result2.keys).each_with_object({}) do |filename, merged|
    file1 = result1[filename]
    file2 = result2[filename]
    merged[filename] = merge_file_coverage(file1, file2)
  end
end