class Capybara::Chromedriver::Logger::Collector
Attributes
errors[R]
filter_levels[R]
filters[R]
log_destination[R]
Public Class Methods
new(options = {})
click to toggle source
# File lib/capybara/chromedriver/logger/collector.rb, line 5 def initialize(options = {}) @errors = [] @log_destination = options[:log_destination] || $stdout @filters = options[:filters] || Capybara::Chromedriver::Logger.filters @filter_levels = options[:filter_levels] || Capybara::Chromedriver::Logger.filter_levels end
Public Instance Methods
flush_and_check_errors!()
click to toggle source
# File lib/capybara/chromedriver/logger/collector.rb, line 13 def flush_and_check_errors! flush_logs! raise_errors_if_needed! clear_errors! end
Private Instance Methods
browser_logs()
click to toggle source
# File lib/capybara/chromedriver/logger/collector.rb, line 48 def browser_logs logs(:browser) end
clear_errors!()
click to toggle source
# File lib/capybara/chromedriver/logger/collector.rb, line 44 def clear_errors! @errors = [] end
flush_logs!()
click to toggle source
# File lib/capybara/chromedriver/logger/collector.rb, line 32 def flush_logs! browser_logs.each do |log| message = Message.new(log) next if should_filter?(message) errors << message if message.error? log_destination.puts message.to_s end end
logs(type)
click to toggle source
# File lib/capybara/chromedriver/logger/collector.rb, line 52 def logs(type) Capybara .current_session .driver.browser .manage .logs .get(type) end
raise_errors_if_needed!()
click to toggle source
# File lib/capybara/chromedriver/logger/collector.rb, line 22 def raise_errors_if_needed! return unless Capybara::Chromedriver::Logger.raise_js_errors? return if errors.empty? formatted_errors = errors.map(&:to_s) error_list = formatted_errors.join("\n") raise JsError, "Got some JS errors during testing:\n\n#{error_list}" end
should_filter?(message)
click to toggle source
# File lib/capybara/chromedriver/logger/collector.rb, line 61 def should_filter?(message) should_filter_by_level?(message) || should_filter_content?(message) end
should_filter_by_level?(message)
click to toggle source
# File lib/capybara/chromedriver/logger/collector.rb, line 65 def should_filter_by_level?(message) filter_levels.include?(message.level) end
should_filter_content?(message)
click to toggle source
# File lib/capybara/chromedriver/logger/collector.rb, line 69 def should_filter_content?(message) filters.any? { |filter| filter =~ message.message } end