From 803008eb97487614e865ba3428ca2658dc11901b Mon Sep 17 00:00:00 2001 From: Wolfram Arnold Date: Wed, 17 Jul 2013 18:19:13 -0700 Subject: 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. --- activesupport/CHANGELOG.md | 4 ++++ activesupport/lib/active_support/tagged_logging.rb | 4 ++++ activesupport/test/tagged_logging_test.rb | 4 ++++ 3 files changed, 12 insertions(+) (limited to 'activesupport') 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 -- cgit v1.2.3