Skip to content

Commit

Permalink
Merge pull request #7643 from steveklabnik/deprecate_silence
Browse files Browse the repository at this point in the history
Deprecate ActiveSupport::Benchmarkable#silence.
  • Loading branch information
rafaelfranca committed Sep 15, 2012
2 parents 3ec6783 + ed2fea9 commit 1b7894c
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 12 deletions.
30 changes: 18 additions & 12 deletions activerecord/test/cases/base_test.rb
Expand Up @@ -1619,26 +1619,32 @@ def test_becomes_includes_errors

def test_silence_sets_log_level_to_error_in_block
original_logger = ActiveRecord::Base.logger
log = StringIO.new
ActiveRecord::Base.logger = ActiveSupport::Logger.new(log)
ActiveRecord::Base.logger.level = Logger::DEBUG
ActiveRecord::Base.silence do
ActiveRecord::Base.logger.warn "warn"
ActiveRecord::Base.logger.error "error"

assert_deprecated do
log = StringIO.new
ActiveRecord::Base.logger = ActiveSupport::Logger.new(log)
ActiveRecord::Base.logger.level = Logger::DEBUG
ActiveRecord::Base.silence do
ActiveRecord::Base.logger.warn "warn"
ActiveRecord::Base.logger.error "error"
end
assert_equal "error\n", log.string
end
assert_equal "error\n", log.string
ensure
ActiveRecord::Base.logger = original_logger
end

def test_silence_sets_log_level_back_to_level_before_yield
original_logger = ActiveRecord::Base.logger
log = StringIO.new
ActiveRecord::Base.logger = ActiveSupport::Logger.new(log)
ActiveRecord::Base.logger.level = Logger::WARN
ActiveRecord::Base.silence do

assert_deprecated do
log = StringIO.new
ActiveRecord::Base.logger = ActiveSupport::Logger.new(log)
ActiveRecord::Base.logger.level = Logger::WARN
ActiveRecord::Base.silence do
end
assert_equal Logger::WARN, ActiveRecord::Base.logger.level
end
assert_equal Logger::WARN, ActiveRecord::Base.logger.level
ensure
ActiveRecord::Base.logger = original_logger
end
Expand Down
4 changes: 4 additions & 0 deletions activesupport/CHANGELOG.md
@@ -1,5 +1,9 @@
## Rails 4.0.0 (unreleased) ##

* ActiveSupport::Benchmarkable#silence has been deprecated due to its lack of
thread safety. It will be removed without replacement in Rails 4.1. *Steve
Klabnik*

* An optional block can be passed to `Hash#deep_merge`. The block will be invoked for each duplicated key
and used to resolve the conflict. *Pranas Kiziela*

Expand Down
1 change: 1 addition & 0 deletions activesupport/lib/active_support/benchmarkable.rb
Expand Up @@ -46,6 +46,7 @@ def benchmark(message = "Benchmarking", options = {})
# Silence the logger during the execution of the block.
#
def silence
ActiveSupport::Deprecation.warn "ActiveSupport::Benchmarkable#silence is deprecated. It will be removed from Rails 4.1."
old_logger_level, logger.level = logger.level, ::Logger::ERROR if logger
yield
ensure
Expand Down

0 comments on commit 1b7894c

Please sign in to comment.