[#47529] ruby1.9.2 にて、 IO#reopen で第2引数を省略したときにモードが引き継がれない — jugyo kohno <kkohno@...>

jugyo と申します

11 messages 2010/10/08
[#47562] Re: ruby1.9.2 にて、 IO#reopen で第2引数を省略したときにモードが引き継がれない — "Y. NOBUOKA" <nobuoka@...> 2010/10/15

信岡です。

[#47537] Excel用のxmlssファイルを作成するライブラリ exlap_c — "YOSHIIZUMI" <t-yoshiizumi@...>

 吉泉といいます。

11 messages 2010/10/10

[ruby-list:47529] ruby1.9.2 にて、 IO#reopen で第2引数を省略したときにモードが引き継がれない

From: jugyo kohno <kkohno@...>
Date: 2010-10-08 01:13:58 UTC
List: ruby-list #47529
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 `<main>'

--
@jugyo

In This Thread

Prev Next