Rubyリファレンス: Home

alias_method (Module)

Edit   History

標準クラス・モジュール > Module > alias_method

private

alias_method(new_name, original_name)

alias_methodメソッドは、クラスやモジュールのメソッドに別名を付けます。引数には新しい別名new_name、元のメソッド名original_nameを順に指定します。戻り値はクラスやモジュール自身です。

別名を付けると、通常のメソッド呼び出しのように別名でメソッドを呼び出せるようになります。

class Cat
  def message() "meow" end
  
  alias_method :welcome, :message
end
 
cat = Cat.new
puts cat.welcome
meow

alias_methodメソッドで別名を付けると、元のメソッドをremove_methodundef_methodで呼び出せないようにしたり、メソッドを上書きしたりしても、別名のメソッドには元のメソッドの機能が保たれます。

既存のメソッドを利用しつつ改造する方法の1つとして、alias_methodメソッドで別名を付けておき、上書きしたメソッドの中で元のメソッド(次の例のorig_message)を呼び出す、という方法があります。

class Cat
  def message() "meow" end
end
 
class Cat
  alias_method :orig_message, :message
  def message
    orig_message + orig_message
  end
end
 
cat = Cat.new
puts cat.message
meowmeow

関連項目