class Report::SimpleCov

Public Instance Methods

translate(json) click to toggle source
# File lib/report/simplecov.rb, line 2
def translate(json)
  json
    .reduce({}) do |acc, (_test_runner, results)|
      results["coverage"].each do |file_path, file_coverage|
        acc[file_path] ||= {}
        file_coverage.each_with_index do |line_coverage, i|
          line_num = i + 1
          if line_coverage.nil?
            acc[file_path][line_num] = nil
            next
          end
          old_coverage = acc[file_path][line_num]
          acc[file_path][line_num] = old_coverage.nil? ?
            line_coverage :
            line_coerage + old_coverage
        end
      end
      acc
    end
    .reduce({}) do |acc, (file_name, lines)|
      acc[file_name] ||= {}
      acc[file_name][:lines] = lines.reduce({}) do |bcc, (line_num, hits)|
        bcc[line_num] = {
          hits: hits,
          type: :unknown
        }
        bcc
      end
      acc
    end
end