まつもと ゆきひろです
In message "[ruby-list:5632] undef method"
on 97/12/11, Keiju ISHITSUKA <keiju / rational.com> writes:
|けいじゅ@日本ラショナルソフトウェアです.
|
|undefしたメソッドをもう一度生かすにはどうしたら良いのでしょうか?
undefは「まったくなかったことにする」操作ですからねえ.
これは
* aliasで別の名前で保存しておき
* undef
* 終ったら再びaliasで戻す
というやり方でできるかもしれません.実装上何回も繰り返すこと
はお勧めしませんが.
別の方法としては
* 1.1b1からあるModule#remove_methodを使う
というものがあります.この場合
# 一時的に別の定義を得意メソッドに定義する
eval 'class << f
def foo; print "foo\n"; end
end'
# 元の定義に戻したい...
eval 'class << f
remove_method :foo
end'
という感じですかね.
# 1.1b1ではキャッシュの不整合が起きるかも
まつもと ゆきひろ /:|)