Class: Yell::Formatter::Modifier

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

Overview

Message modifier class to allow different modifiers for different requirements.

Instance Method Summary collapse

Constructor Details

#initializeModifier

Returns a new instance of Modifier.



108
109
110
# File 'lib/yell/formatter.rb', line 108

def initialize
  @repository = {}
end

Instance Method Details

#call(message) ⇒ Object



116
117
118
119
120
121
122
123
124
125
126
127
128
# File 'lib/yell/formatter.rb', line 116

def call( message )
  case
  when mod = @repository[message.class] || @repository[message.class.to_s]
    mod.call(message)
  when message.is_a?(Hash)
    message.map { |k,v| "#{k}: #{v}" }.join(", ")
  when message.is_a?(Exception)
    backtrace = message.backtrace ? "\n\t#{message.backtrace.join("\n\t")}" : ""
    sprintf("%s: %s%s", message.class, message.message, backtrace)
  else
    message
  end
end

#set(key, &block) ⇒ Object



112
113
114
# File 'lib/yell/formatter.rb', line 112

def set( key, &block )
  @repository.merge!(key => block)
end