[#47501] Hash の制約について( Ruby1.8) — 上田佳寛 <ueda@...>
皆様はじめまして
8 messages
2010/10/01
[#47528] Ruby1.9.1 p430へのRDE インストールについて — eiichi_maekawa@...
5 messages
2010/10/07
[#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
信岡です。
[#47563] SketchUpのRubyでwin32oleをrequireする方法について(質問)
— "yahata hisashi" <yahatah@...>
2010/10/16
Google SketchUpのRubyでwin32oleをrequireする方法について教えていただきたく
[#47564] Re: SketchUpのRubyでwin32oleをrequireする方法について(質問)
— Masaki Suketa <masaki.suketa@...>
2010/10/16
助田です。
[#47566] Re: SketchUpのRubyでwin32oleをrequireする方法について(質問)
— "yahata hisashi" <yahatah@...>
2010/10/16
助田 雅紀様
[#47567] Re: SketchUpのRubyでwin32oleをrequireする方法について(質問)
— Masaki Suketa <masaki.suketa@...>
2010/10/16
助田です。
[#47537] Excel用のxmlssファイルを作成するライブラリ exlap_c — "YOSHIIZUMI" <t-yoshiizumi@...>
吉泉といいます。
11 messages
2010/10/10
[#47575] Re: Excel用のxmlssファイルを作成するライブラリ exlap_c
— 染谷 康一 <kouichi_someya@...>
2010/10/18
吉泉さん
[#47547] 正規表現で困っています — 成田恭一[NWH] <ntnarita_prn@...>
Ruby初心者の成田と申します。
7 messages
2010/10/13
[#47578] Ruby1.9.2のRDocで定義が出力されないことがある — KANAI-Takashi <kanai@...>
こんにちは。
6 messages
2010/10/18
[#47579] Re: Ruby1.9.2のRDocで定義が出力されないことがある
— KANAI-Takashi <kanai@...>
2010/10/18
金井です。
[#47588] Re: [ruby-list:47579] Re: Ruby1.9.2のRDocで定義が出力されないことがある
— 青柳政聡 <masaakiaoyagi@...>
2010/10/22
44Gv44GY44KB44G+44GX44Gm44CB6Z2S5p+z44Go55Sz44GX44G+44GZ44CCCgrph5HkupXjgZXj
[ruby-list:47562] Re: ruby1.9.2 にて、 IO#reopen で第2引数を省略したときにモードが引き継がれない
From:
"Y. NOBUOKA" <nobuoka@...>
Date:
2010-10-15 02:44:20 UTC
List:
ruby-list #47562
信岡です。
この話はちょっと気になっていたのですが進展がありませんので私の意見を述べさせて頂きます。
> ruby1.9.2 にて、
> IO#reopen で第2引数を省略したときにモードが引き継がれていないように見えます。
> これはバグでしょうか?
私の環境で試したところ ruby1.9.2p0 だけでなく ruby1.9.1p378 でも同様で、IO#close したものに対して第 2
引数を省略して IO#reopen すると読み書きができませんでした (読み込みモードも書き込みモードも付与されていない)。
IO#close していない IO オブジェクトに対して第 2 引数を省略して IO#reopen したところモードは引き継がれました。
Ruby 1.9.2p0 のソースコードを読んだところ、IO#close したときに読み込みモードおよび書き込みモードが次のように削除されており
fptr->mode &= ~(FMODE_READABLE|FMODE_WRITABLE);
IO#close した IO オブジェクトに対して第 2 引数を省略して IO#reopen
するとこのモードが引き継がれてしまうので読み込みも書き込みもできなくなるようです。
バグなのか仕様なのかはちょっとわかりませんね。
個人的にはこれが仕様であると言ってしまってもいいような気はしますが。。
2010年10月8日10:13 jugyo kohno <kkohno@gmail.com>:
> 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>'
>
--
信岡 裕也 (NOBUOKA Yuya)