Sha256: 4557abc582da744fbe940c6232144b22ed2fedfd041b6d70db500e0bdb8fb618

Contents?: true

Size: 677 Bytes

Versions: 1

Compression:

Stored size: 677 Bytes

Contents

# frozen_string_literal: true

require "oga"

Issue = Struct.new(:file, :offset, :line, :message)

class ReportParser
  def self.parse_report_xml(filepath)
    xml_file = File.open(filepath)
    document = Oga.parse_xml(xml_file)
    issues = []
    document.xpath("//Report/Issues/Project").each do |project|
      project.children.each do |issue|
        next unless issue.kind_of?(Oga::XML::Element)

        file = issue.get("File").tr("\\", "/")
        offset = issue.get("Offset")
        line = (issue.get("Line") || "1").to_i
        message = issue.get("Message")
        issues << Issue.new(file, offset, line, message)
      end
    end
    return issues
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
danger-resharper_inspectcode-1.0.2 lib/resharper_inspectcode/report_parser.rb