2012-09-01から1日間の記事一覧

標準出力に一時ファイルを代入したらpとputsで挙動が異なる

前のエントリーを書いている時の恐怖体験。IO#reopenを使わず、$stdoutに代入したら変な挙動に。 require 'tempfile' t = Tempfile.open("") $stdout = File.open(t, "w") p "Whoops!" $stdout = STDOUT p File.read(t) #=> "\"Whoops!\"\n" pでは出力された…

標準出力のテスト書いた

9/2追記:RSpecで使うと、なぜか最初のreopenでスクリプトが終了して(リターンコード=1)、それ以降のケースがなかったことにされてしまったため、reopenから$stdoutへの代入に修正しました。flushすれば代入でも上手く動くっぽいので。 参考リンク(Rubyリ…