method_undefined(name) -> ()[permalink][rdoc]このモジュールのインスタンスメソッド name が Module#undef_method によって削除されるか、 undef 文により未定義にされると、インタプリタがこのメソッドを呼び出します。
特異メソッドの削除をフックするには BasicObject#singleton_method_undefined を使います。
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