module Aws::Deprecations

A utility module that provides a class method that wraps a method such that it generates a deprecation warning when called. Given the following class:

class Example

  def do_something
  end

end

If you want to deprecate the `#do_something` method, you can extend this module and then call `deprecated` on the method (after it has been defined).

class Example

  extend Aws::Deprecations

  def do_something
  end

  def do_something_else
  end

  deprecated :do_something

end

The `#do_something` method will continue to function, but will generate a deprecation warning when called.

@api private

Public Instance Methods

deprecated(method_name, options = {}) click to toggle source

@param [Symbol] method_name The name of the deprecated method.

@option options [String] :message The warning message to issue

when the deprecated method is called.

@option options [Symbol] :use The name of an use

method that should be used.
# File lib/aws-sdk-core/deprecations.rb, line 46
def deprecated(method_name, options = {})

  deprecation_msg = options[:message] || begin
    msg = "DEPRECATION WARNING: called deprecated method `#{method_name}' "
    msg << "of an #{self}"
    msg << ", use #{options[:use]} instead" if options[:use]
    msg
  end

  alias_method(:"deprecated_#{method_name}", method_name)

  warned = false # we only want to issue this warning once

  define_method(method_name) do |*args,&block|
    unless warned
      warned = true
      warn(deprecation_msg + "\n" + caller.join("\n"))
    end
    send("deprecated_#{method_name}", *args, &block)
  end
end