aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport
diff options
context:
space:
mode:
authorWolfram Arnold <wolfram@handl.it>2013-07-17 18:19:13 -0700
committerWolfram Arnold <wolfram@handl.it>2013-07-17 18:26:55 -0700
commit803008eb97487614e865ba3428ca2658dc11901b (patch)
treec85d0a525b5010aefe3c10854848765e1d39d382 /activesupport
parentfc0faaa5905eab7f2a70b1d5b5aa06bd7b43d7fd (diff)
downloadrails-803008eb97487614e865ba3428ca2658dc11901b.tar.gz
rails-803008eb97487614e865ba3428ca2658dc11901b.tar.bz2
rails-803008eb97487614e865ba3428ca2658dc11901b.zip
Add respond_to_missing? for TaggedLogging which is needed if another log abstracter wraps a TaggedLogging instance.
It's also best practice when overriding method_missing.
Diffstat (limited to 'activesupport')
-rw-r--r--activesupport/CHANGELOG.md4
-rw-r--r--activesupport/lib/active_support/tagged_logging.rb4
-rw-r--r--activesupport/test/tagged_logging_test.rb4
3 files changed, 12 insertions, 0 deletions
diff --git a/activesupport/CHANGELOG.md b/activesupport/CHANGELOG.md
index 20579e44d3..4753977eaa 100644
--- a/activesupport/CHANGELOG.md
+++ b/activesupport/CHANGELOG.md
@@ -27,6 +27,10 @@
*Andrew White*
+* Add respond_to_missing? for TaggedLogging which is best practice when overriding method_missing. This permits
+ wrapping TaggedLogging by another log abstraction such as em-logger.
+
+ *Wolfram Arnold*
## Rails 3.2.13 (Mar 18, 2013) ##
diff --git a/activesupport/lib/active_support/tagged_logging.rb b/activesupport/lib/active_support/tagged_logging.rb
index 6fff3bc0d4..4b23a1399c 100644
--- a/activesupport/lib/active_support/tagged_logging.rb
+++ b/activesupport/lib/active_support/tagged_logging.rb
@@ -72,6 +72,10 @@ module ActiveSupport
@logger.send(method, *args)
end
+ def respond_to_missing?(*args)
+ @logger.respond_to? *args
+ end
+
private
def tags_text
tags = current_tags
diff --git a/activesupport/test/tagged_logging_test.rb b/activesupport/test/tagged_logging_test.rb
index 91c311ba16..89417ac5cb 100644
--- a/activesupport/test/tagged_logging_test.rb
+++ b/activesupport/test/tagged_logging_test.rb
@@ -66,6 +66,10 @@ class TaggedLoggingTest < ActiveSupport::TestCase
assert_equal "[BCX] Funky time\n", @output.string
end
+ test "correctly answers responds_to_missing? for methods on logger instance" do
+ assert @logger.respond_to?(:debug?)
+ end
+
test "tagged once with blank and nil" do
@logger.tagged(nil, "", "New") { @logger.info "Funky time" }
assert_equal "[New] Funky time\n", @output.string