class Solargraph::Reek::Reporter

Public Instance Methods

diagnose(source, _api_map) click to toggle source
# File lib/solargraph-reek.rb, line 8
def diagnose source, _api_map
  examiner = ::Reek::Examiner.new(source.code.dup)
  examiner.smells.map { |w| warning_to_diagnostic(w) }
rescue ::Reek::Errors::SyntaxError
  []
end

Private Instance Methods

warning_to_diagnostic(warning) click to toggle source

@param warning [::Reek::SmellWarning] @return [Hash]

# File lib/solargraph-reek.rb, line 19
def warning_to_diagnostic(warning)
  {
    range: Solargraph::Range.from_to(warning.lines.first - 1, 0, warning.lines.last, 0).to_hash,
    severity: Diagnostics::Severities::WARNING,
    source: 'Reek',
    message: "[#{warning.smell_type}] #{warning.message}"
  }
end