Sha256: 3d4954b82b45b81018909dcf20c4dbe8d65e8af227a31aea41806022e2bd8ece

Contents?: true

Size: 1.74 KB

Versions: 1116

Compression:

Stored size: 1.74 KB

Contents

module Aws

  # 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
  module Deprecations

    # @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.
    #
    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

  end
end

Version data entries

1,116 entries across 1,116 versions & 2 rubygems

Version Path
aws-sdk-core-2.11.632 lib/aws-sdk-core/deprecations.rb
aws-sdk-core-2.11.631 lib/aws-sdk-core/deprecations.rb
aws-sdk-core-2.11.630 lib/aws-sdk-core/deprecations.rb
aws-sdk-core-2.11.629 lib/aws-sdk-core/deprecations.rb
aws-sdk-core-2.11.628 lib/aws-sdk-core/deprecations.rb
aws-sdk-core-2.11.627 lib/aws-sdk-core/deprecations.rb
aws-sdk-core-2.11.626 lib/aws-sdk-core/deprecations.rb
aws-sdk-core-2.11.625 lib/aws-sdk-core/deprecations.rb
aws-sdk-core-2.11.624 lib/aws-sdk-core/deprecations.rb
aws-sdk-core-2.11.623 lib/aws-sdk-core/deprecations.rb
aws-sdk-core-2.11.622 lib/aws-sdk-core/deprecations.rb
aws-sdk-core-2.11.621 lib/aws-sdk-core/deprecations.rb
aws-sdk-core-2.11.620 lib/aws-sdk-core/deprecations.rb
aws-sdk-core-2.11.619 lib/aws-sdk-core/deprecations.rb
aws-sdk-core-2.11.618 lib/aws-sdk-core/deprecations.rb
aws-sdk-core-2.11.617 lib/aws-sdk-core/deprecations.rb
aws-sdk-core-2.11.616 lib/aws-sdk-core/deprecations.rb
aws-sdk-core-2.11.615 lib/aws-sdk-core/deprecations.rb
aws-sdk-core-2.11.614 lib/aws-sdk-core/deprecations.rb
aws-sdk-core-2.11.613 lib/aws-sdk-core/deprecations.rb