File: recording_logger.rb

package info (click to toggle)
ruby-mongo 2.21.3-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 14,764 kB
  • sloc: ruby: 108,806; makefile: 5; sh: 2
file content (27 lines) | stat: -rw-r--r-- 616 bytes parent folder | download
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