From: jugyo kohno Date: 2010-10-08T10:13:58+09:00 Subject: [ruby-list:47529] ruby1.9.2 にて、 IO#reopen で第2引数を省略したときにモードが引き継がれない jugyo と申します ruby1.9.2 にて、 IO#reopen で第2引数を省略したときにモードが引き継がれていないように見えます。 これはバグでしょうか? この挙動が delayed_job という rails プラグインを使う際に問題になります。(もう対策がされてますが) 参考: http://github.com/jugyo/delayed_job/commit/fcee1d139bfb3a7e6064e238e39a98cbcb9f2994#L0R82 再現コード: ------------------------ f = File.open('foo.txt', 'w') f.close f.reopen(f.path) f << 'foo' puts 'done' 実行結果: ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0] ------------------------ done 実行結果: ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.4.0] ------------------------ io_reopen_test.rb:4:in `write': not opened for writing (IOError) from io_reopen_test.rb:4:in `<<' from io_reopen_test.rb:4:in `
' -- @jugyo