スクリプトで -q (quiet) オプションを処理するために、次のようにしました。
class NoWrite
def write(*args)
end
end
$stdout = NoWrite.new if $options[:quiet]
それは正常に動作します。
しかし、メソッドを無意味にするメタプログラミングの方法がないかどうか疑問に思っていwriteます。
remove_methodメソッドを定義する必要がundef_methodあるため使用できませwriteん。何もしないようにしたいだけです。
また、$stderr影響を受けることはできません。