From 47500f2055467d0c72c7ce53b2535d7610347fb0 Mon Sep 17 00:00:00 2001 From: Samuel Williams Date: Fri, 15 Mar 2019 12:12:11 +1300 Subject: [PATCH] [ruby/logger] Add support for changing severity using bang methods. https://github.com/ruby/logger/commit/ae4c6dfcbb --- lib/logger.rb | 15 +++++++++++++++ test/logger/test_severity.rb | 11 +++++++++++ 2 files changed, 26 insertions(+) diff --git a/lib/logger.rb b/lib/logger.rb index 918caf0956..7e65af34eb 100644 --- a/lib/logger.rb +++ b/lib/logger.rb @@ -322,22 +322,37 @@ class Logger # +DEBUG+ messages. def debug?; @level <= DEBUG; end + # Sets the severity to DEBUG. + def debug!; self.level = DEBUG; end + # Returns +true+ iff the current severity level allows for the printing of # +INFO+ messages. def info?; @level <= INFO; end + # Sets the severity to INFO. + def info!; self.level = INFO; end + # Returns +true+ iff the current severity level allows for the printing of # +WARN+ messages. def warn?; @level <= WARN; end + # Sets the severity to WARN. + def warn!; self.level = WARN; end + # Returns +true+ iff the current severity level allows for the printing of # +ERROR+ messages. def error?; @level <= ERROR; end + # Sets the severity to ERROR. + def error!; self.level = ERROR; end + # Returns +true+ iff the current severity level allows for the printing of # +FATAL+ messages. def fatal?; @level <= FATAL; end + # Sets the severity to FATAL. + def fatal!; self.level = FATAL; end + # # :call-seq: # Logger.new(logdev, shift_age = 0, shift_size = 1048576) diff --git a/test/logger/test_severity.rb b/test/logger/test_severity.rb index f17a392829..8889a1dc52 100644 --- a/test/logger/test_severity.rb +++ b/test/logger/test_severity.rb @@ -13,4 +13,15 @@ class TestLoggerSeverity < Test::Unit::TestCase end assert_equal(levels.size, Logger::Severity.constants.size) end + + def test_level_assignment + logger = Logger.new(nil) + + Logger::Severity.constants.each do |level| + next if level == :UNKNOWN + + logger.send("#{level.downcase}!") + assert(logger.level) == Logger::Severity.const_get(level) + end + end end