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

Version Path
tdiary-5.0.9 vendor/bundle/gems/simplecov-0.14.1/lib/simplecov/raw_coverage.rb
simplecov-0.15.1 lib/simplecov/raw_coverage.rb
simplecov-0.15.0 lib/simplecov/raw_coverage.rb
logstash-filter-cache-redis-0.3.1 vendor/bundle/jruby/1.9/gems/simplecov-0.14.1/lib/simplecov/raw_coverage.rb
logstash-filter-cache-redis-0.3.0 vendor/bundle/jruby/1.9/gems/simplecov-0.14.1/lib/simplecov/raw_coverage.rb
logstash-filter-cache-redis-0.2.0 vendor/bundle/jruby/1.9/gems/simplecov-0.14.1/lib/simplecov/raw_coverage.rb
logstash-filter-cache-redis-0.1.0 vendor/bundle/jruby/1.9/gems/simplecov-0.14.1/lib/simplecov/raw_coverage.rb
enju_leaf-1.2.1 vendor/bundle/ruby/2.3/gems/simplecov-0.14.1/lib/simplecov/raw_coverage.rb
simplecov-patched-0.14.3 lib/simplecov/raw_coverage.rb
simplecov-patched-0.14.2 lib/simplecov/raw_coverage.rb
simplecov-0.14.1 lib/simplecov/raw_coverage.rb
simplecov-0.14.0 lib/simplecov/raw_coverage.rb