【发布时间】:2011-01-05 23:02:12
【问题描述】:
您可以像这样为类动态定义类方法:
class Foo
end
bar = %q{def bar() "bar!" end}
Foo.instance_eval(bar)
但是你如何做相反的事情:删除/取消定义一个类方法?我怀疑 Module 的 remove_method 和 undef_method 方法可能可以用于此目的,但我在谷歌搜索数小时后看到的所有示例都是用于删除/取消定义 instance 方法,不是类方法。或者,您也可以将一种语法传递给 instance_eval 来执行此操作。
提前致谢。
【问题讨论】:
标签: ruby metaprogramming