class Drydock::Logger

Public Instance Methods

add(severity, message = nil, progname = nil) { || ... } click to toggle source
Calls superclass method
# File lib/drydock/logger.rb, line 7
def add(severity, message = nil, progname = nil, &block)
  annotation = nil
  indent     = 0

  if message.nil?
    if block_given?
      message = yield
    else
      message = progname
      progname = @progname
    end
  end

  if message.respond_to?(:key?)
    indent     = message[:indent].to_i + 1
    annotation = message.fetch(:annotation, '-->')
    if message.key?(:message)
      messages = Array(message[:message])
    elsif message.key?(:messages)
      messages = Array(message[:messages])
    end
  else
    messages = [message]
  end

  annotation << " " if annotation
  indentation = '    ' * indent

  messages.each do |m|
    m.to_s.split(/\n/).each do |line|
      if annotation
        super(severity, "#{indentation}#{annotation} #{line}", progname)
      else
        super(severity, line, progname)
      end
    end
  end
end
Also aliased as: log
log(severity, message = nil, progname = nil, &block)
Alias for: add