class Pronto::Swiftlint::OutputParser

Public Instance Methods

parse(output) click to toggle source
# File lib/pronto/swiftlint/output_parser.rb, line 6
def parse(output)
  begin
    violations = JSON.parse(output)
  rescue => e
    puts "pronto-swiftlint ERROR: failed to parse output. Is formatter set to json? #{e}"
    return {}
  end

  result = {}
  violations.each do |violation|
    file = violation['file']
    result[file] ||= []
    result[file] << {
      file: violation['file'],
      line: violation['line'],
      column: violation['character'],
      level: parse_severity(violation['severity']),
      message: violation['reason'],
      rule: violation['rule_id']
    }
  end
  result
end

Private Instance Methods

parse_severity(severity) click to toggle source
# File lib/pronto/swiftlint/output_parser.rb, line 32
def parse_severity(severity)
  if severity == 'Warning'
    :warning
  elsif severity == 'Error'
    :error
  else
    :info
  end
end