概要
Module#method_undefined(name) -> ()
詳細
このモジュールのインスタンスメソッド name が Module#undef_method によって削除されるか、
undef 文により未定義にされると、インタプリタがこのメソッドを呼び出される。
要はメソッドの undef 動作に対するフック。
サンプルコード
class Hoge def self.method_undefined(name) puts "method_undefined => #{name}" end %w{hoge hige hage}.each do |m| define_method m.to_sym do puts m end end print instance_methods(false), "\n" undef hoge, hige print instance_methods(false), "\n" undef_method :hage print instance_methods(false), "\n" end hoge = Hoge.new
出力
[:hoge, :hige, :hage] method_undefined => hoge method_undefined => hige [:hage] method_undefined => hage []