Sha256: aab664be02c996c28c0944ca9c82e0083b1c1a9baecff1c1a812a26bdde891a9
Contents?: true
Size: 983 Bytes
Versions: 12
Compression:
Stored size: 983 Bytes
Contents
module SimpleCov module RawCoverage module_function # Merges multiple Coverage.result hashes def merge_results(*results) results.reduce({}) do |result, merged| merge_resultsets(result, merged) end end # Merges two Coverage.result hashes 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 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 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 end end
Version data entries
12 entries across 12 versions & 5 rubygems