method

alias_method_chain

alias_method_chain(target, feature)
public

Encapsulates the common pattern of:

  alias_method :foo_without_feature, :foo
  alias_method :foo, :foo_with_feature

With this, you simply do:

  alias_method_chain :foo, :feature

And both aliases are set up for you.

Query and bang methods (foo?, foo!) keep the same punctuation:

  alias_method_chain :foo?, :feature

is equivalent to

  alias_method :foo_without_feature?, :foo?
  alias_method :foo?, :foo_with_feature?

so you can safely chain foo, foo?, and foo! with the same feature.

2Notes

Method moved in 2.1 and again in 3.0 (beta)

mikael · Jul 14, 20101 thank

It was moved from and back to Module#alias_method_chain