Module: RuboCop::Cop::Lint::Syntax

Defined in:
lib/rubocop/cop/lint/syntax.rb

Overview

This is actually not a cop and inspects nothing. It just provides methods to repack Parser's diagnostics/errors into RuboCop's offenses.

Defined Under Namespace

Classes: PseudoSourceRange

Constant Summary collapse

COP_NAME =
'Syntax'.freeze
ERROR_SOURCE_RANGE =
PseudoSourceRange.new(1, 0, '').freeze

Class Method Summary collapse

Class Method Details

.offense_from_diagnostic(diagnostic) ⇒ Object


28
29
30
31
32
33
34
35
# File 'lib/rubocop/cop/lint/syntax.rb', line 28

def self.offense_from_diagnostic(diagnostic)
  Offense.new(
    diagnostic.level,
    diagnostic.location,
    diagnostic.message,
    COP_NAME
  )
end

.offense_from_error(error) ⇒ Object


37
38
39
40
# File 'lib/rubocop/cop/lint/syntax.rb', line 37

def self.offense_from_error(error)
  message = beautify_message(error.message)
  Offense.new(:fatal, ERROR_SOURCE_RANGE, message, COP_NAME)
end

.offenses_from_processed_source(processed_source) ⇒ Object


14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/rubocop/cop/lint/syntax.rb', line 14

def self.offenses_from_processed_source(processed_source)
  offenses = []

  if processed_source.parser_error
    offenses << offense_from_error(processed_source.parser_error)
  end

  processed_source.diagnostics.each do |diagnostic|
    offenses << offense_from_diagnostic(diagnostic)
  end

  offenses
end