aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkennyj <kennyj@gmail.com>2012-01-31 21:26:17 +0900
committerkennyj <kennyj@gmail.com>2012-01-31 21:26:17 +0900
commit91700bfc2dce8a9c473087d206a3498eeecb1ca0 (patch)
tree842b85a2244365a7e901ab1bbaec06b7cad13255
parentb2955edcea63e3daa347dc4e05b9abd380176ac8 (diff)
downloadrails-91700bfc2dce8a9c473087d206a3498eeecb1ca0.tar.gz
rails-91700bfc2dce8a9c473087d206a3498eeecb1ca0.tar.bz2
rails-91700bfc2dce8a9c473087d206a3498eeecb1ca0.zip
Fix GH #4760. A Block was not evaluated.
-rw-r--r--activesupport/lib/active_support/tagged_logging.rb5
-rw-r--r--activesupport/test/tagged_logging_test.rb8
2 files changed, 11 insertions, 2 deletions
diff --git a/activesupport/lib/active_support/tagged_logging.rb b/activesupport/lib/active_support/tagged_logging.rb
index d71215b447..6af87e85e6 100644
--- a/activesupport/lib/active_support/tagged_logging.rb
+++ b/activesupport/lib/active_support/tagged_logging.rb
@@ -33,13 +33,14 @@ module ActiveSupport
deprecate :silence
def add(severity, message = nil, progname = nil, &block)
- @logger.add(severity, "#{tags_text}#{message}", progname, &block)
+ message = (block_given? ? block.call : progname) if message.nil?
+ @logger.add(severity, "#{tags_text}#{message}", progname)
end
%w( fatal error warn info debug unknown ).each do |severity|
eval <<-EOM, nil, __FILE__, __LINE__ + 1
def #{severity}(progname = nil, &block)
- add(Logger::#{severity.upcase}, progname, &block)
+ add(Logger::#{severity.upcase}, nil, progname, &block)
end
EOM
end
diff --git a/activesupport/test/tagged_logging_test.rb b/activesupport/test/tagged_logging_test.rb
index 7ecab33a9a..c838c073e6 100644
--- a/activesupport/test/tagged_logging_test.rb
+++ b/activesupport/test/tagged_logging_test.rb
@@ -70,4 +70,12 @@ class TaggedLoggingTest < ActiveSupport::TestCase
assert_nothing_raised { @logger.silence {} }
end
end
+
+ test "calls block" do
+ @logger.tagged("BCX") do
+ @logger.info { "Funky town" }
+ end
+ assert_equal "[BCX] Funky town\n", @output.string
+ end
+
end