Rubyリファレンス: Home

singleton_method_undefined

Edit   History

標準クラス・モジュール > Object > singleton_method_undefined

def singleton_method_undefined(method_name)
  code...
end

singleton_method_undefinedメソッドを定義すると、そのクラスのオブジェクトで特異メソッドを未定義にしたときに、singleton_method_undefinedが呼び出されるようになります。引数にはメソッド名がシンボルで渡されます。

class String
  def singleton_method_added(name)
    puts "#{name} is added!"
  end
  def singleton_method_undefined(name)
    puts "#{name} is undefined!"
  end
end
 
str = "hello"
def str.double
  self + self
end
 
class << str
  undef_method :double
end
double is added!
double is undefined!

関連項目