Skip to content

Commit

Permalink
Remove WebDriver::Logger compatibility layer for Ruby 2.2 and older
Browse files Browse the repository at this point in the history
Ruby 2.3 is minimum required version in Selenium 4
  • Loading branch information
p0deje committed Mar 9, 2019
1 parent cfcacc2 commit b4a0af5
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 37 deletions.
45 changes: 8 additions & 37 deletions rb/lib/selenium/webdriver/common/logger.rb
Original file line number Diff line number Diff line change
Expand Up @@ -35,54 +35,25 @@ module WebDriver
#
class Logger
extend Forwardable
include ::Logger::Severity

def_delegators :@logger, :debug, :debug?,
:info, :info?,
:warn, :warn?,
:error, :error?,
:fatal, :fatal?,
:level
:level, :level=

def initialize
@logger = create_logger($stdout)
end

def output=(io)
# `Logger#reopen` was added in Ruby 2.3
if @logger.respond_to?(:reopen)
@logger.reopen(io)
else
@logger = create_logger(io)
end
end

#
# For Ruby < 2.3 compatibility
# Based on https://github.com/ruby/ruby/blob/ruby_2_3/lib/logger.rb#L250
# Changes logger output to a new IO.
#

def level=(severity)
if severity.is_a?(Integer)
@logger.level = severity
else
case severity.to_s.downcase
when 'debug'
@logger.level = DEBUG
when 'info'
@logger.level = INFO
when 'warn'
@logger.level = WARN
when 'error'
@logger.level = ERROR
when 'fatal'
@logger.level = FATAL
when 'unknown'
@logger.level = UNKNOWN
else
raise ArgumentError, "invalid log level: #{severity}"
end
end
# @param [String] io
#
def output=(io)
@logger.reopen(io)
end

#
Expand Down Expand Up @@ -132,9 +103,9 @@ def create_logger(output)

def default_level
if $DEBUG || ENV.key?('DEBUG')
DEBUG
:debug
else
WARN
:warn
end
end
end # Logger
Expand Down
3 changes: 3 additions & 0 deletions rb/spec/unit/selenium/webdriver/common/logger_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -32,16 +32,19 @@ module WebDriver

it 'logs warnings by default' do
expect(WebDriver.logger.level).to eq(2)
expect(WebDriver.logger).to be_warn
end

it 'logs everything if $DEBUG is set to true' do
$DEBUG = true
expect(WebDriver.logger.level).to eq(0)
expect(WebDriver.logger).to be_debug
end

it 'allows to change level during execution' do
WebDriver.logger.level = :info
expect(WebDriver.logger.level).to eq(1)
expect(WebDriver.logger).to be_info
end

it 'outputs to stdout by default' do
Expand Down

0 comments on commit b4a0af5

Please sign in to comment.