Module Deprecated
In: lib/deprecated.rb

Deprecated is a module to help you deprecate code BEFORE you remove it. Don‘t surprise your users, deprecate them!

Usage is simple:

    class Foo
      include Deprecated

      def moo
        "cow"
      end

      deprecated :moo

      def sheep
        "baaa"
      end

      deprecated :sheep, "Sounds#baa"

      protected

      def bar
        true
      end

      deprecated :bar
    end

    Foo.new.moo # warns that the call is deprecated

    Deprecated.set_action(:raise)
    Foo.new.moo # raises with the same message

    Deprecated.set_action do |klass, sym, replacement|
      email_boss(
        "Someone tried to use #{klass}##{sym}! " +
        "They should be using #{replacement} instead!"
      )
    end

    Foo.new.sheep # do I really need to explain?

    Foo.new.bar # still protected!

Let‘s do it live!

    class Bar
      include Deprecated

      # sets it just for this class
      deprecated_set_action do |klass, sym, replacement|
        email_boss(
          "Someone tried to use #{klass}##{sym}! " +
          "They should be using #{replacement} instead!"
        )
      end

      def cow
        "moo"
      end

      deprecate :cow # emails your boss when called!
    end

Please see Deprecated::Module#deprecated, Deprecated.set_action, and Deprecated::Module#deprecated_set_action for more information.

Methods

Classes and Modules

Module Deprecated::Module

Constants

VERSION = "3.0.0"

Public Class methods

Returns the current action; this may be block or Proc.

Is called when an action needs to be run. Proably not in your best interest to run this directly.

set_action takes 3 "canned" arguments or an arbitrary block. If you provide the block, any canned argument is ignored.

The canned arguments are:

:warn:display a warning
:raise:raise a DeprecatedError (a kind of StandardError) with the warning.
:fail:fail. die. kaput. it‘s over.

Procs take three arguments:

  • The class of the method
  • The method name itself, a symbol
  • A replacement string which may be nil

Public Instance methods

[Validate]