Class: Yell::Level

Inherits:
Object
  • Object
show all
Defined in:
lib/yell/level.rb

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.

Examples:

Set from :info to :error (including)

Yell::Level.new(:info).lte(:error)

Set from :info to :error (excluding)

Yell::Level.new(:info).lt(:error)

Set at :info only

Yell::Level.new.at(:info)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(severity = nil) ⇒ Level

Create a new level instance.

Examples:

Enable all severities

Yell::Level.new

Pass the minimum possible severity

Yell::Level.new :warn

Pass an array to exactly set the level at the given severities

Yell::Level.new [:info, :error]

Pass a range to set the level within the severities

Yell::Level.new (:info..:error)

Parameters:

  • severity (Integer, String, Symbol, Array, Range, nil) (defaults to: nil)

    The severity for the level.



44
45
46
47
48
49
50
51
52
53
# File 'lib/yell/level.rb', line 44

def initialize( severity = nil )
  @severities = Yell::Severities.map { true } # all levels allowed by default

  case severity
    when Yell::Level then @severities = severity.severities
    when Array then at( *severity )
    when Range then gte(severity.first).lte(severity.last)
    when Integer, String, Symbol then gte(severity)
  end
end

Instance Attribute Details

#severitiesObject (readonly)

Returns the value of attribute severities.



27
28
29
# File 'lib/yell/level.rb', line 27

def severities
  @severities
end

Instance Method Details

#at(*severities) ⇒ Object

:nodoc:



72
73
74
75
# File 'lib/yell/level.rb', line 72

def at( *severities ) #:nodoc:
  severities.each { |severity| calculate! :==, severity }
  self
end

#at?(severity) ⇒ Boolean

Returns whether the level is allowed at the given severity

Examples:

at? :warn
at? 0       # debug

Returns:

  • (Boolean)


60
61
62
63
64
# File 'lib/yell/level.rb', line 60

def at?( severity )
  index = index_from( severity )

  index.nil? ? false : @severities[index]
end

#gt(severity) ⇒ Object

:nodoc:



77
78
79
80
# File 'lib/yell/level.rb', line 77

def gt( severity ) #:nodoc:
  calculate! :>, severity
  self
end

#gte(severity) ⇒ Object

:nodoc:



82
83
84
85
# File 'lib/yell/level.rb', line 82

def gte( severity ) #:nodoc:
  calculate! :>=, severity
  self
end

#lt(severity) ⇒ Object

:nodoc:



87
88
89
90
# File 'lib/yell/level.rb', line 87

def lt( severity ) #:nodoc:
  calculate! :<, severity
  self
end

#lte(severity) ⇒ Object

:nodoc:



92
93
94
95
# File 'lib/yell/level.rb', line 92

def lte( severity ) #:nodoc:
  calculate! :<=, severity
  self
end

#to_iObject Also known as: to_int

to_i implements backwards compatibility



67
68
69
# File 'lib/yell/level.rb', line 67

def to_i
  @severities.each_with_index { |s,i| return i if s == true }
end