class Asciidoctor::MemoryLogger

def add severity, message = nil, progname = nil

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

def clear

def clear
  @messages.clear
end

def empty?

def empty?
  @messages.empty?
end

def initialize

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

def max_severity

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