From: "mame (Yusuke Endoh)" Date: 2012-04-02T21:50:35+09:00 Subject: [ruby-dev:45487] [ruby-trunk - Feature #4592] Tempfileを直接保存したい Issue #4592 has been updated by mame (Yusuke Endoh). Assignee changed from mame (Yusuke Endoh) to matz (Yukihiro Matsumoto) mame (Yusuke Endoh) wrote: > どういう意味でこのチケットを自分にアサインしたか忘れてしまったのですが。 思い出しました。開発者会議で出た内容をまとめて matz に振るのでした。 しかし開発者会議で出た内容を正確に覚えてないんですが、 - ユースケースは理解できる - 卜部さんの workaround は推奨されない - 良い API・名前はなんだろう くらいだったと思います。間違ってたら正してください > 参加者 matz が直接判断しなくても、tempfile.rb のメンテナになってくれる人が いれば判断できると思います。 まあメンテナになるのに matz の承認が必要ですが。 あと訂正。 > これは、GC タイミングによっては失敗しますよね。(f.close の直後で GC) これは間違いでした。f の参照が残っているので GC されることはありません。 でも race condition の問題はあるので、やはり推奨はされない、という話 だったと思います。 -- Yusuke Endoh ---------------------------------------- Feature #4592: Tempfileを直接保存したい https://bugs.ruby-lang.org/issues/4592#change-25598 Author: xibbar (Takeyuki Fujioka) Status: Assigned Priority: Normal Assignee: matz (Yukihiro Matsumoto) Category: lib Target version: =begin Tempfileは一時ファイルなので、プロセスが消えたり、#closeすると、 ファイルが消えてしまいます。 Tempfileのデータを保存するために 一旦読みだして、書き込み用に別ファイルを開いて、 そこに書きこまなければいけません。 これが小さいファイルだったらいいのですが、 大きいファイルになると、 Tempfile#save みたいなメソッドを用意して、 closeと同時に保存ができると、 読みだして書きこむという無駄をなくすことができます。 10MB程度だったらいいのですが、500MとかのTempfileだと かなり有効なメソッドだと思います。 #save とか #save! とか、何がいいかは議論の余地があると思います。 =end -- http://bugs.ruby-lang.org/