class Processor::Messenger

Attributes

sender[R]

Public Class Methods

new(level = :info, file = STDOUT, sender = nil) click to toggle source
Calls superclass method
# File lib/processor/messenger.rb, line 6
def initialize(level = :info, file = STDOUT, sender = nil)
  @sender = sender
  if level == :null
    file = "/dev/null"
    level = :fatal
  end

  log_level = Logger.const_get(level.upcase);

  logger = ::Logger.new(file).tap do |logger|
    logger.formatter = method(:format_message)
    logger.level = log_level
  end

  super logger
end

Public Instance Methods

message(*args) click to toggle source
# File lib/processor/messenger.rb, line 30
def message(*args)
  self.info *args
end

Private Instance Methods

format_message(severity, datetime, progname, message) click to toggle source
# File lib/processor/messenger.rb, line 36
def format_message(severity, datetime, progname, message)
  lines = message.split("\n").map do |line|
    "> %s" % line.gsub(/^\s+/, '')
  end.join("\n")

  message = "\n#{severity} message"
  message << " from #{sender}" if sender
  message << " on #{datetime}"
  message << ":\n#{lines}\n"
end