class Saddler::Reporter::Text
Constants
- VERSION
Public Class Methods
new(output)
click to toggle source
# File lib/saddler/reporter/text.rb, line 5 def initialize(output) @output = output end
Public Instance Methods
parse_messages(messages)
click to toggle source
# File lib/saddler/reporter/text.rb, line 21 def parse_messages(messages) # TODO: split to class or gem require 'rexml/document' parsed = [] document = REXML::Document.new messages document.elements.each('/checkstyle/file') do |file_element| file_name = file_element.attribute('name') && file_element.attribute('name').value file_element.elements.each('error') do |error_element| line = error_element.attribute('line') && error_element.attribute('line').value.to_i column = error_element.attribute('column') && error_element.attribute('column').value.to_i severity = error_element.attribute('severity') && error_element.attribute('severity').value message = error_element.attribute('message') && error_element.attribute('message').value source = error_element.attribute('source') && error_element.attribute('source').value parsed << { file: file_name, line: line, column: column, severity: severity, message: message, source: source } end end parsed end
report(messages, _options = {})
click to toggle source
# File lib/saddler/reporter/text.rb, line 9 def report(messages, _options = {}) parsed_messages = parse_messages(messages) parsed_messages.each do |msg| severity = msg[:severity] && msg[:severity].upcase line = msg[:line] path = msg[:file] column = msg[:column] message = msg[:message] @output.puts "#{path}:#{line}:#{column} #{severity}: #{message}" end end