2008年2月15日

[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はできる。
中田 伸悦

投稿者 xml-rpc : 2008年2月15日 00:47
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/69793
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。