aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/deprecation/reporting.rb
diff options
context:
space:
mode:
authorRobert Pankowecki <robert.pankowecki@gmail.com>2011-07-25 21:05:06 +0200
committerPiotr Niełacny <piotr.nielacny@gmail.com>2012-09-13 08:42:00 +0200
commit2c690a0f5b36896da9b003d4e24159a27ebd7f71 (patch)
tree8d9aacd7f0f4a22f30b8a3bc7bd779838d23bf67 /activesupport/lib/active_support/deprecation/reporting.rb
parentc4b857299b3322572b006d825bb9dc9912101e99 (diff)
downloadrails-2c690a0f5b36896da9b003d4e24159a27ebd7f71.tar.gz
rails-2c690a0f5b36896da9b003d4e24159a27ebd7f71.tar.bz2
rails-2c690a0f5b36896da9b003d4e24159a27ebd7f71.zip
extend ActiveSupport::Deprecation with self, allow other objects to extend/include it also.
test local deprecation deprecator object Test ActiveSupport::Deprecation when included
Diffstat (limited to 'activesupport/lib/active_support/deprecation/reporting.rb')
-rw-r--r--activesupport/lib/active_support/deprecation/reporting.rb117
1 files changed, 58 insertions, 59 deletions
diff --git a/activesupport/lib/active_support/deprecation/reporting.rb b/activesupport/lib/active_support/deprecation/reporting.rb
index a1e9618084..69de79b93c 100644
--- a/activesupport/lib/active_support/deprecation/reporting.rb
+++ b/activesupport/lib/active_support/deprecation/reporting.rb
@@ -1,74 +1,73 @@
module ActiveSupport
module Deprecation
- class << self
- attr_accessor :silenced
+ attr_accessor :silenced
- # Outputs a deprecation warning to the output configured by
- # <tt>ActiveSupport::Deprecation.behavior</tt>.
- #
- # ActiveSupport::Deprecation.warn("something broke!")
- # # => "DEPRECATION WARNING: something broke! (called from your_code.rb:1)"
- def warn(message = nil, callstack = caller)
- return if silenced
- deprecation_message(callstack, message).tap do |m|
- behavior.each { |b| b.call(m, callstack) }
- end
+ # Outputs a deprecation warning to the output configured by
+ # <tt>ActiveSupport::Deprecation.behavior</tt>.
+ #
+ # ActiveSupport::Deprecation.warn("something broke!")
+ # # => "DEPRECATION WARNING: something broke! (called from your_code.rb:1)"
+ def warn(message = nil, callstack = caller)
+ return if silenced
+ deprecation_message(callstack, message).tap do |m|
+ behavior.each { |b| b.call(m, callstack) }
end
+ end
- # Silence deprecation warnings within the block.
- #
- # ActiveSupport::Deprecation.warn("something broke!")
- # # => "DEPRECATION WARNING: something broke! (called from your_code.rb:1)"
- #
- # ActiveSupport::Deprecation.silence do
- # ActiveSupport::Deprecation.warn("something broke!")
- # end
- # # => nil
- def silence
- old_silenced, @silenced = @silenced, true
- yield
- ensure
- @silenced = old_silenced
- end
+ # Silence deprecation warnings within the block.
+ #
+ # ActiveSupport::Deprecation.warn("something broke!")
+ # # => "DEPRECATION WARNING: something broke! (called from your_code.rb:1)"
+ #
+ # ActiveSupport::Deprecation.silence do
+ # ActiveSupport::Deprecation.warn("something broke!")
+ # end
+ # # => nil
+ def silence
+ old_silenced, @silenced = @silenced, true
+ yield
+ ensure
+ @silenced = old_silenced
+ end
- def deprecated_method_warning(method_name, message = nil)
- warning = "#{method_name} is deprecated and will be removed from Rails #{deprecation_horizon}"
- case message
- when Symbol then "#{warning} (use #{message} instead)"
- when String then "#{warning} (#{message})"
- else warning
- end
+ def deprecated_method_warning(method_name, message = nil)
+ warning = "#{method_name} is deprecated and will be removed from Rails #{deprecation_horizon}"
+ case message
+ when Symbol then warning << " (use #{message} instead)"
+ when String then warning << " (#{message})"
end
+ warning
+ end
- private
- def deprecation_message(callstack, message = nil)
- message ||= "You are using deprecated behavior which will be removed from the next major or minor release."
- message += '.' unless message =~ /\.$/
- "DEPRECATION WARNING: #{message} #{deprecation_caller_message(callstack)}"
- end
+ private
+
+ def deprecation_message(callstack, message = nil)
+ message ||= "You are using deprecated behavior which will be removed from the next major or minor release."
+ message += '.' unless message =~ /\.$/
+ "DEPRECATION WARNING: #{message} #{deprecation_caller_message(callstack)}"
+ end
- def deprecation_caller_message(callstack)
- file, line, method = extract_callstack(callstack)
- if file
- if line && method
- "(called from #{method} at #{file}:#{line})"
- else
- "(called from #{file}:#{line})"
- end
- end
+ def deprecation_caller_message(callstack)
+ file, line, method = extract_callstack(callstack)
+ if file
+ if line && method
+ "(called from #{method} at #{file}:#{line})"
+ else
+ "(called from #{file}:#{line})"
end
+ end
+ end
- def extract_callstack(callstack)
- rails_gem_root = File.expand_path("../../../../..", __FILE__) + "/"
- offending_line = callstack.find { |line| !line.start_with?(rails_gem_root) } || callstack.first
- if offending_line
- if md = offending_line.match(/^(.+?):(\d+)(?::in `(.*?)')?/)
- md.captures
- else
- offending_line
- end
- end
+ def extract_callstack(callstack)
+ rails_gem_root = File.expand_path("../../../../..", __FILE__) + "/"
+ offending_line = callstack.find { |line| !line.start_with?(rails_gem_root) } || callstack.first
+ if offending_line
+ if md = offending_line.match(/^(.+?):(\d+)(?::in `(.*?)')?/)
+ md.captures
+ else
+ offending_line
end
+ end
end
end
end