class Capybara::Chromedriver::Logger::Message

Constants

COLORS
LEADING_SPACES

Attributes

file[R]
level[R]
location[R]
message[R]
timestamp[R]

Public Class Methods

new(log) click to toggle source
# File lib/capybara/chromedriver/logger/message.rb, line 9
def initialize(log)
  @message = log.message.strip.gsub(/%c/, '')
  @level = log.level
  @file = nil
  @location = nil

  extract_file_and_location!
end

Public Instance Methods

error?() click to toggle source
# File lib/capybara/chromedriver/logger/message.rb, line 30
def error?
  level == 'SEVERE'
end
to_s() click to toggle source
# File lib/capybara/chromedriver/logger/message.rb, line 18
def to_s
  first_line = [
    "\u{1F4DC} ",
    log_level,
    file_and_location
  ].compact.join(' ')

  second_line = formatted_message

  [first_line, second_line].join("\n")
end

Private Instance Methods

extract_file_and_location!() click to toggle source
# File lib/capybara/chromedriver/logger/message.rb, line 68
def extract_file_and_location!
  match = message.match(/^(.+)\s+?(\d+:\d+)\s+?(.+)$/)

  return unless match

  _, @file, @location, message = match.to_a
  @message = message.gsub(/^"(.+?)"$/, '\1')
end
file_and_location() click to toggle source
# File lib/capybara/chromedriver/logger/message.rb, line 62
def file_and_location
  return unless file && location

  "#{file} #{location}".colorize(color: :white, background: :light_magenta)
end
formatted_message() click to toggle source
# File lib/capybara/chromedriver/logger/message.rb, line 45
def formatted_message
  message
    .gsub('\n', "\n")
    .gsub('\u003C', "\u003C")
    .split("\n")
    .map { |line| "#{LEADING_SPACES}#{line}" }
    .join("\n")
end
level_color() click to toggle source
# File lib/capybara/chromedriver/logger/message.rb, line 54
def level_color
  COLORS[level] || :light_blue
end
log_level() click to toggle source
# File lib/capybara/chromedriver/logger/message.rb, line 58
def log_level
  " #{level.downcase} ".colorize(color: :white, background: level_color).bold
end