class Asciidoctor::MemoryLogger

def add severity, message = nil, progname = nil

def add severity, message = nil, progname = nil
  message = block_given? ? yield : progname unless message
  @messages << { severity: SEVERITY_LABELS[severity || UNKNOWN], message: message }
  true
end

def clear

def clear
  @messages.clear
end

def empty?

def empty?
  @messages.empty?
end

def initialize

def initialize
  self.level = WARN
  @messages = []
end

def max_severity

def max_severity
  empty? ? nil : @messages.map {|m| Severity.const_get m[:severity], false }.max
end