From: Nobuyoshi Nakada Date: 2008-02-15T00:47:26+09:00 Subject: [ruby-list:44641] Re: warningをエラー扱いする方法について、他 なかだです。 At Thu, 14 Feb 2008 02:40:04 +0900, yoshimi wrote in [ruby-list:44627]: > 一つ目は、タイトルにある通り、 > warningが発生した場合、エラーにして実行できないように > したいのですが、これはどの様にすればできますでしょうか > > 開発段階でwarningがあると、気持ち悪くはあるんですが > スルーすることもできるし、見落としてしまうこともあります。 > できれば開発段階のうちに強制的にでも、 > 不安要素を全て摘み取ってしまいたいんですが、 > どうにもそのための方法が見つけられませんでした。 確実にwarningだけをエラーにする方法はありませんが、STDERRの出力 をチェックすればなんとなくそれっぽいことはできなくもありません。 $ cat w.rb class Warning < RuntimeError def self.write(s) if / warning:/ =~ s $stderr = STDERR raise(self, s.chomp) end STDERR.write(s) end end $stderr = Warning Array.new(1,nil){} $ ruby w.rb w.rb:6:in `write': w.rb:12: warning: block supersedes default value argument (Warning) from w.rb:12:in `initialize' from w.rb:12:in `new' from w.rb:12 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦