Module: Aws::Deprecations Private

Included in:
CredentialProvider, Resources::Collection
Defined in:
lib/aws-sdk-core/deprecations.rb

Overview

This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.

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.

Instance Method Summary collapse

Instance Method Details

#deprecated(method_name, options = {}) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Parameters:

  • method_name (Symbol)

    The name of the deprecated method.

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • :message (String)

    The warning message to issue when the deprecated method is called.

  • :use (Symbol)

    The name of an use method that should be used.



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# 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