Maintenance of Ruby 2.0.0 ended on February 24, 2016. Read more

In Files

  • rubygems/deprecate.rb

Class/Module Index [+]



Provides a single method deprecate to be used to declare when something is going away.

class Legacy
  def self.klass_method
    # ...

  def instance_method
    # ...

  extend Gem::Deprecate
  deprecate :instance_method, "X.z", 2011, 4

  class << self
    extend Gem::Deprecate
    deprecate :klass_method, :none, 2011, 4

Public Class Methods

deprecate(name, repl, year, month) click to toggle source

Simple deprecation method that deprecates name by wrapping it up in a dummy method. It warns on each call to the dummy method telling the user of repl (unless repl is :none) and the year/month that it is planned to go away.

               # File rubygems/deprecate.rb, line 49
def deprecate name, repl, year, month
  class_eval {
    old = "_deprecated_#{name}"
    alias_method old, name
    define_method name do |*args, &block| # TODO: really works on 1.8.7?
      klass = self.kind_of? Module
      target = klass ? "#{self}." : "#{self.class}#"
      msg = [ "NOTE: #{target}#{name} is deprecated",
        repl == :none ? " with no replacement" : "; use #{repl} instead",
        ". It will be removed on or after %4d-%02d-01." % [year, month],
        "\n#{target}#{name} called from #{Gem.location_of_caller.join(":")}",
      warn "#{msg.join}." unless Gem::Deprecate.skip
      send old, *args, &block
skip_during() click to toggle source

Temporarily turn off warnings. Intended for tests only.

               # File rubygems/deprecate.rb, line 36
def skip_during
  Gem::Deprecate.skip, original = true, Gem::Deprecate.skip
  Gem::Deprecate.skip = original

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit