From 3a318970b19129c2ba57ebf576015dfa653613e8 Mon Sep 17 00:00:00 2001 From: Jamis Buck Date: Tue, 24 Oct 2006 16:56:59 +0000 Subject: Extend deprecate so that alternatives can be specified via the deprecation git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5356 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activesupport/lib/active_support/deprecation.rb | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'activesupport/lib/active_support/deprecation.rb') diff --git a/activesupport/lib/active_support/deprecation.rb b/activesupport/lib/active_support/deprecation.rb index 297a17850e..621cc14cea 100644 --- a/activesupport/lib/active_support/deprecation.rb +++ b/activesupport/lib/active_support/deprecation.rb @@ -71,11 +71,13 @@ module ActiveSupport module ClassMethods # Declare that a method has been deprecated. def deprecate(*method_names) + options = method_names.last.is_a?(Hash) ? method_names.pop : {} + method_names = method_names + options.keys method_names.each do |method_name| alias_method_chain(method_name, :deprecation) do |target, punctuation| class_eval(<<-EOS, __FILE__, __LINE__) def #{target}_with_deprecation#{punctuation}(*args, &block) - ::ActiveSupport::Deprecation.warn(self.class.deprecated_method_warning(:#{method_name}), caller) + ::ActiveSupport::Deprecation.warn(self.class.deprecated_method_warning(:#{method_name}, #{options[method_name].inspect}), caller) #{target}_without_deprecation#{punctuation}(*args, &block) end EOS @@ -83,8 +85,13 @@ module ActiveSupport end end - def deprecated_method_warning(method_name) - "#{method_name} is deprecated and will be removed from Rails #{deprecation_horizon}" + 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 end def deprecation_horizon -- cgit v1.2.3