1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
# frozen_string_literal: true
# rubocop:todo all
require 'stringio'
# A "Logger-alike" class, quacking like ::Logger, used for recording messages
# as they are written to the log
class RecordingLogger < Logger
def initialize(*args, **kwargs)
@buffer = StringIO.new
super(@buffer, *args, **kwargs)
end
# Accesses the raw contents of the log
#
# @return [ String ] the raw contents of the log
def contents
@buffer.string
end
# Returns the contents of the log as individual lines.
#
# @return [ Array<String> ] the individual log lines
def lines
contents.split(/\n/)
end
end
|