Sha256: 8cec3fa322135f9f140179117c5bc5468692b2585c998e2491511cd951287508
Contents?: true
Size: 1.79 KB
Versions: 3
Compression:
Stored size: 1.79 KB
Contents
# frozen_string_literal: true module Coverband module Collectors class Delta @@previous_coverage = {} attr_reader :current_coverage def initialize(current_coverage) @current_coverage = current_coverage end class RubyCoverage def self.results ::Coverage.peek_result.dup end end def self.results(process_coverage = RubyCoverage) coverage_results = process_coverage.results coverage_results = transform_oneshot_lines_results(coverage_results) if Coverband.configuration.use_oneshot_lines_coverage new(coverage_results).results end def results new_results = generate @@previous_coverage = current_coverage new_results end def self.reset @@previous_coverage = {} end private def generate current_coverage.each_with_object({}) do |(file, line_counts), new_results| new_results[file] = if @@previous_coverage[file] array_diff(line_counts, @@previous_coverage[file]) else line_counts end end end def array_diff(latest, original) latest.map.with_index do |v, i| [0, v - original[i]].max if v && original[i] end end private_class_method def self.transform_oneshot_lines_results(results) results.each_with_object({}) do |(file, coverage), new_results| transformed_line_counts = coverage[:oneshot_lines].each_with_object(::Coverage.line_stub(file)) do |line_number, line_counts| line_counts[line_number - 1] = 1 end new_results[file] = transformed_line_counts end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
coverband-4.2.1.rc3 | lib/coverband/collectors/delta.rb |
coverband-4.2.1.rc2 | lib/coverband/collectors/delta.rb |
coverband-4.2.1.rc1 | lib/coverband/collectors/delta.rb |