Class: RSpectre::Offense

Inherits:
Object
  • Object
show all
Defined in:
lib/rspectre/offense.rb

Constant Summary collapse

DESCRIPTIONS =
{
  'UnusedLet'         => 'Unused `let` definition.',
  'UnusedSubject'     => 'Unused `subject` definition.',
  'UnusedSharedSetup' => 'Unused `shared_examples`, `shared_examples_for`, or'\
                         ' `shared_context` definition.'
}.freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.parse(type, node) ⇒ Object



14
15
16
17
18
19
20
21
22
23
# File 'lib/rspectre/offense.rb', line 14

def self.parse(type, node)
  new(
    file:         node.file,
    line:         node.line,
    source_line:  node.source_line,
    start_column: node.start_column,
    end_column:   node.end_column,
    type:         type
  )
end

Instance Method Details

#descriptionObject



38
39
40
# File 'lib/rspectre/offense.rb', line 38

def description
  DESCRIPTIONS.fetch(type)
end

#to_sObject



29
30
31
32
33
34
35
36
# File 'lib/rspectre/offense.rb', line 29

def to_s
  <<~DOC

    #{source_id}: #{offense_type}: #{description}
        #{source_line}
        #{highlight}
  DOC
end

#warnObject



25
26
27
# File 'lib/rspectre/offense.rb', line 25

def warn
  puts to_s
end