class HamlLint::Reporter::CheckstyleReporter

Outputs report as an XML checkstyle document.

Public Instance Methods

display_report(report) click to toggle source
# File lib/haml_lint/reporter/checkstyle_reporter.rb, line 6
def display_report(report)
  lints = report.lints
  files = lints.group_by(&:filename)

  xml = '<?xml version="1.0" encoding="utf-8"?>'

  xml << '<checkstyle version="5.7">'

  files.each do |filename, offenses|
    xml << "<file name=\"#{filename}\">"
    xml << render_offenses(offenses)
    xml << '</file>'
  end

  xml << '</checkstyle>'
  log.log xml
end

Private Instance Methods

render_offenses(offenses) click to toggle source
# File lib/haml_lint/reporter/checkstyle_reporter.rb, line 26
def render_offenses(offenses)
  xml = ''
  offenses.each do |offense|
    xml << "<error line=\"#{offense.line}\" severity=\"#{offense.severity}\" "
    xml << "message=\"#{CGI.escapeHTML offense.message}\" "
    xml << "source=\"#{offense.linter.name}\" " if offense.linter
    xml << '/>'
  end
  xml
end