Ruby 2.4.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Moduleクラス > method_undefined (private)

instance method Module#method_undefined

method_undefined(name) -> ()[permalink][rdoc]

このモジュールのインスタンスメソッド name が Module#undef_method によって削除されるか、 undef 文により未定義にされると、インタプリタがこのメソッドを呼び出します。

特異メソッドの削除をフックするには BasicObject#singleton_method_undefined を使います。

[PARAM] name:
削除/未定義にされたメソッド名が Symbol で渡されます。
class C
  def C.method_undefined(name)
    puts "method C\##{name} was undefined"
  end

  def foo
  end
  def bar
  end

  undef_method :foo
  undef bar
end

実行結果:

method C#foo was undefined
method C#bar was undefined