Sha256: d5ee83e721cf25f3d0e588a229ad73701168e3d43363a16df3fd7b358af7bff3

Contents?: true

Size: 672 Bytes

Versions: 2

Compression:

Stored size: 672 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 = 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

2 entries across 2 versions & 1 rubygems

Version Path
danger-resharper_inspectcode-1.0.1 lib/resharper_inspectcode/report_parser.rb
danger-resharper_inspectcode-1.0.0 lib/resharper_inspectcode/report_parser.rb