Class: RuboCop::Cop::Severity

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/rubocop/cop/severity.rb

Overview

Severity class is simple value object about severity

Constant Summary collapse

NAMES =
%i[refactor convention warning error fatal].freeze
CODE_TABLE =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

{ R: :refactor, C: :convention,
W: :warning, E: :error, F: :fatal }.freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name_or_code) ⇒ Severity

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Severity.

Raises:

  • (ArgumentError)

30
31
32
33
34
35
36
# File 'lib/rubocop/cop/severity.rb', line 30

def initialize(name_or_code)
  name = Severity.name_from_code(name_or_code)
  raise ArgumentError, "Unknown severity: #{name}" unless NAMES.include?(name)

  @name = name.freeze
  freeze
end

Instance Attribute Details

#nameSymbol (readonly)

Returns severity. any of `:refactor`, `:convention`, `:warning`, `:error` or `:fatal`.

Returns:

  • (Symbol)

    severity. any of `:refactor`, `:convention`, `:warning`, `:error` or `:fatal`.


22
23
24
# File 'lib/rubocop/cop/severity.rb', line 22

def name
  @name
end

Class Method Details

.name_from_code(code) ⇒ Object


24
25
26
27
# File 'lib/rubocop/cop/severity.rb', line 24

def self.name_from_code(code)
  name = code.to_sym
  CODE_TABLE[name] || name
end

Instance Method Details

#<=>(other) ⇒ Object


62
63
64
# File 'lib/rubocop/cop/severity.rb', line 62

def <=>(other)
  level <=> other.level
end

#==(other) ⇒ Object


50
51
52
53
54
55
56
# File 'lib/rubocop/cop/severity.rb', line 50

def ==(other)
  @name == if other.is_a?(Symbol)
             other
           else
             other.name
           end
end

#codeObject


42
43
44
# File 'lib/rubocop/cop/severity.rb', line 42

def code
  @name.to_s[0].upcase
end

#hashObject


58
59
60
# File 'lib/rubocop/cop/severity.rb', line 58

def hash
  @name.hash
end

#levelObject


46
47
48
# File 'lib/rubocop/cop/severity.rb', line 46

def level
  NAMES.index(name) + 1
end

#to_sObject


38
39
40
# File 'lib/rubocop/cop/severity.rb', line 38

def to_s
  @name.to_s
end