Class: Yell::Silencer

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

Overview

The Yell::Silencer is your handly helper for stiping out unwanted log messages.

Instance Method Summary collapse

Constructor Details

#initialize(*patterns) ⇒ Silencer

Returns a new instance of Silencer.



7
8
9
# File 'lib/yell/silencer.rb', line 7

def initialize( *patterns )
  @patterns = patterns.dup
end

Instance Method Details

#add(*patterns) ⇒ Array

Add one or more patterns to the silencer

Examples:

add( 'password' )
add( 'username', 'password' )

Add regular expressions

add( /password/ )

Returns:

  • (Array)

    All set patterns



21
22
23
# File 'lib/yell/silencer.rb', line 21

def add( *patterns )
  @patterns = @patterns | patterns.compact
end

#inspectObject

Get a pretty string



44
45
46
# File 'lib/yell/silencer.rb', line 44

def inspect
  "#<#{self.class.name} patterns: #{@patterns.inspect}>"
end

#patternsObject



49
50
51
# File 'lib/yell/silencer.rb', line 49

def patterns
  @patterns
end

#silence(*messages) ⇒ Array<String>

Clears out all the messages that would match any defined pattern

Examples:

silence('username', 'password')
#=> ['username]

Returns:

  • (Array<String>)

    The remaining messages



32
33
34
# File 'lib/yell/silencer.rb', line 32

def silence( *messages )
  messages.reject { |m| matches?(m) }
end

#silence?Boolean

Anything to silence at all?

Returns:

  • (Boolean)

    true or false



39
40
41
# File 'lib/yell/silencer.rb', line 39

def silence?
  @patterns.any?
end