Module: Julewire::Core::Records::Severity

Defined in:
lib/julewire/core/records/severity.rb

Constant Summary collapse

VALUES =
%i[debug info warn error fatal unknown].freeze
STRING_VALUES =
VALUES.to_h { [it.name, it] }.freeze
RANKS =
VALUES.each_with_index.to_h.freeze
LOGGER_INTEGER_VALUES =
VALUES.each_with_index.to_h.invert.freeze

Class Method Summary collapse

Class Method Details

.normalize(value) ⇒ Object

Raises:

  • (ArgumentError)


14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/julewire/core/records/severity.rb', line 14

def normalize(value)
  case value
  when Symbol
    return value if RANKS.key?(value)
  when String
    severity = STRING_VALUES[value.downcase]
    return severity unless severity.nil?
  when Integer
    severity = LOGGER_INTEGER_VALUES[value]
    return severity unless severity.nil?
  end

  raise ArgumentError, "unsupported severity: #{value.inspect}"
end

.rank(value) ⇒ Object



29
30
31
# File 'lib/julewire/core/records/severity.rb', line 29

def rank(value)
  RANKS.fetch(normalize(value))
end