我希望能够在给定对象上取消单例方法。
class A
end
a = A.new
def a.foo
puts "bar"
end
# undef a.foo here
a.foo # should crash
答案 0 :(得分:11)
class << a
undef foo
end
可替换地:
a.singleton_class.send :undef_method, :foo
答案 1 :(得分:3)
class A
end
a = A.new
def a.foo
puts "bar"
end
a.instance_eval { undef :foo }
a.foo # => undefined method `foo' for #<A:0x8469c60> (NoMethodError)