概要
Module#method_removed(name) -> ()
詳細
メソッドが Module#remove_method により削除された時にインタプリタがこのメソッドを呼び出す。
サンプルコード
class Hoge def self.method_removed(name) puts "method_removed => #{name}" end %w{hoge hige hage}.each do |m| define_method m.to_sym do puts m end end end hoge = Hoge.new print hoge.public_methods(false), "\n" puts hoge.class.class_eval { remove_method :hoge } print hoge.public_methods(false), "\n"
出力
[:hoge, :hige, :hage]
method_removed => hoge
Hoge
[:hige, :hage]