Class: Yell::Level
Overview
The Level
class handles the severities for you in order to determine if an adapter should log or not.
In order to setup your level, you have certain modifiers available:
at :warn # will be set to :warn level only
gt :warn # Will set from :error level onwards
gte :warn # Will set from :warn level onwards
lt :warn # Will set from :info level an below
lte :warn # Will set from :warn level and below
You are able to combine those modifiers to your convenience.
Constant Summary collapse
- InterpretRegexp =
/(at|gt|gte|lt|lte)?\.?(#{Yell::Severities.join('|')})/i
Instance Method Summary collapse
- #<=>(other) ⇒ Object
- #==(other) ⇒ Object
-
#at(*severities) ⇒ Yell::Level
Set the level at specific severities.
-
#at?(severity) ⇒ Boolean
Returns whether the level is allowed at the given severity.
-
#gt(severity) ⇒ Yell::Level
Set the level to greater than the given severity.
-
#gte(severity) ⇒ Yell::Level
Set the level greater or equal to the given severity.
-
#initialize(*severities) ⇒ Level
constructor
Create a new level instance.
-
#inspect ⇒ Object
Get a pretty string representation of the level, including the severities.
-
#lt(severity) ⇒ Yell::Level
Set the level lower than given severity.
-
#lte(severity) ⇒ Yell::Level
Set the level lower or equal than given severity.
-
#set(*severities) ⇒ Object
Set the severity to the given format.
- #severities ⇒ Object
-
#to_i ⇒ Object
(also: #to_int)
to_i implements backwards compatibility.
Constructor Details
#initialize(*severities) ⇒ Level
Create a new level instance.
43 44 45 |
# File 'lib/yell/level.rb', line 43 def initialize( *severities ) set(*severities) end |
Instance Method Details
#<=>(other) ⇒ Object
152 153 154 |
# File 'lib/yell/level.rb', line 152 def <=>( other ) other.is_a?(Numeric) ? to_i <=> other : super end |
#==(other) ⇒ Object
147 148 149 |
# File 'lib/yell/level.rb', line 147 def ==(other) other.respond_to?(:severities) ? severities == other.severities : super end |
#at(*severities) ⇒ Yell::Level
Set the level at specific severities
80 81 82 83 |
# File 'lib/yell/level.rb', line 80 def at( *severities ) severities.each { |severity| calculate! :==, severity } self end |
#at?(severity) ⇒ Boolean
Returns whether the level is allowed at the given severity
68 69 70 71 72 |
# File 'lib/yell/level.rb', line 68 def at?( severity ) index = index_from(severity) index.nil? ? false : @severities[index] end |
#gt(severity) ⇒ Yell::Level
Set the level to greater than the given severity
91 92 93 94 |
# File 'lib/yell/level.rb', line 91 def gt( severity ) calculate! :>, severity self end |
#gte(severity) ⇒ Yell::Level
Set the level greater or equal to the given severity
102 103 104 105 |
# File 'lib/yell/level.rb', line 102 def gte( severity ) calculate! :>=, severity self end |
#inspect ⇒ Object
Get a pretty string representation of the level, including the severities.
136 137 138 139 |
# File 'lib/yell/level.rb', line 136 def inspect inspectables = Yell::Severities.select.with_index { |l, i| !!@severities[i] } "#<#{self.class.name} severities: #{inspectables * ', '}>" end |
#lt(severity) ⇒ Yell::Level
Set the level lower than given severity
113 114 115 116 |
# File 'lib/yell/level.rb', line 113 def lt( severity ) calculate! :<, severity self end |
#lte(severity) ⇒ Yell::Level
Set the level lower or equal than given severity
124 125 126 127 |
# File 'lib/yell/level.rb', line 124 def lte( severity ) calculate! :<=, severity self end |
#set(*severities) ⇒ Object
Set the severity to the given format
48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/yell/level.rb', line 48 def set( *severities ) @severities = Yell::Severities.map { true } severity = severities.length > 1 ? severities : severities.first case severity when Array then at(*severity) when Range then gte(severity.first).lte(severity.last) when String then interpret(severity) when Integer, Symbol then gte(severity) when Yell::Level then @severities = severity.severities end end |
#severities ⇒ Object
142 143 144 |
# File 'lib/yell/level.rb', line 142 def severities @severities end |
#to_i ⇒ Object Also known as: to_int
to_i implements backwards compatibility
130 131 132 |
# File 'lib/yell/level.rb', line 130 def to_i @severities.each_with_index { |s,i| return i if s == true } end |