Sha256: b59570a6e02a51da0b9ba97976fbdfd9887a337bef351fc66710606eda2ab67d

Contents?: true

Size: 1.05 KB

Versions: 6

Compression:

Stored size: 1.05 KB

Contents

module Codacy
  module Parser

    def self.parse_file(simplecov_result)
      project_dir = Codacy::Git.git_dir

      logger.info("Parsing simplecov result to Codacy format...")
      logger.debug(simplecov_result.original_result)

      file_reports = simplecov_result.original_result.map do |k, v|
        file_dir = k.sub(project_dir, "").sub("/", "")
        coverage_lines = v.each_with_index.map do |covered, lineNr|
          if !covered.nil? && covered > 0
            [(lineNr + 1).to_s, covered]
          else
            nil
          end
        end.compact
        lines_covered = v.compact.length == 0 ? 0 : ((coverage_lines.length.to_f / v.compact.length) * 100).round
        Hash[
            [['filename', file_dir],
             ['total', lines_covered],
             ['coverage', Hash[coverage_lines]]]
        ]
      end

      total = simplecov_result.source_files.covered_percent.round

      Hash[[['total', total], ['fileReports', file_reports]]]
    end


    private

    def self.logger
      Codacy::Configuration.logger
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
codacy-coverage-1.0.0 lib/codacy/parser.rb
codacy-coverage-0.3.1 lib/codacy/parser.rb
codacy-coverage-0.3.0 lib/codacy/parser.rb
codacy-coverage-0.2.4 lib/codacy/parser.rb
codacy-coverage-0.2.3 lib/codacy/parser.rb
codacy-coverage-0.2.2 lib/codacy/parser.rb