Class: Fastererer::Explanation

Inherits:
Object
  • Object
show all
Defined in:
lib/fastererer/explanation.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(offense_name) ⇒ Explanation

Returns a new instance of Explanation.



15
16
17
18
# File 'lib/fastererer/explanation.rb', line 15

def initialize(offense_name)
  @offense_name = offense_name.to_sym
  @row = RuleCatalog.fetch(@offense_name)
end

Instance Attribute Details

#offense_nameObject (readonly)

Returns the value of attribute offense_name.



13
14
15
# File 'lib/fastererer/explanation.rb', line 13

def offense_name
  @offense_name
end

Class Method Details

.for(offense_name) ⇒ Object



8
9
10
11
# File 'lib/fastererer/explanation.rb', line 8

def self.for(offense_name)
  @instances ||= {}
  @instances[offense_name.to_sym] ||= new(offense_name)
end

Instance Method Details

#descriptionObject



20
21
22
# File 'lib/fastererer/explanation.rb', line 20

def description
  row.fetch('description')
end

#rule_nameObject



28
29
30
# File 'lib/fastererer/explanation.rb', line 28

def rule_name
  @rule_name ||= RuleName.from(offense_name)
end

#to_sObject



32
33
34
# File 'lib/fastererer/explanation.rb', line 32

def to_s
  "#{rule_name}: #{description.delete_suffix('.')}. (#{url})"
end

#urlObject



24
25
26
# File 'lib/fastererer/explanation.rb', line 24

def url
  row.fetch('url')
end