Module: ActiveSupport::Deprecation::ClassMethods

Included in:
Module
Defined in:
lib/active_support/deprecation.rb

Overview

:nodoc:

Instance Method Summary collapse

Instance Method Details

#deprecate(*method_names) ⇒ Object

Declare that a method has been deprecated.



87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# File 'lib/active_support/deprecation.rb', line 87

def deprecate(*method_names)
  options = method_names.extract_options!
  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)   # def generate_secret_with_deprecation(*args, &block)
          ::ActiveSupport::Deprecation.warn(                          #   ::ActiveSupport::Deprecation.warn(
            self.class.deprecated_method_warning(                     #     self.class.deprecated_method_warning(
              :#{method_name},                                        #       :generate_secret,
              #{options[method_name].inspect}),                       #       "You should use ActiveSupport::SecureRandom.hex(64)"),
            caller                                                    #     caller
          )                                                           #   )
          #{target}_without_deprecation#{punctuation}(*args, &block)  #   generate_secret_without_deprecation(*args, &block)
        end                                                           # end
      EOS
    end
  end
end

#deprecated_method_warning(method_name, message = nil) ⇒ Object



107
108
109
110
111
112
113
114
# File 'lib/active_support/deprecation.rb', line 107

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

#deprecation_horizonObject



116
117
118
# File 'lib/active_support/deprecation.rb', line 116

def deprecation_horizon
  '2.3'
end