csc360-a1-shell/ruby/shell_logger.rb

33 lines
551 B
Ruby

# Queues up messages to be printed out when readline is waiting for input, to prevent
# mixing shell output with command output.
class ShellLogger
Log = Struct.new(:level, :message)
attr_reader :logs
def self.instance
@instance ||= new
end
def initialize
clear
end
def log(message)
@logs << Log.new(:info, message)
end
alias info log
def warn(message)
@logs << Log.new(:warning, message)
end
def verbose(message)
@logs << Log.new(:verbose, message)
end
def clear
@logs = []
nil
end
end