[#43412] [Ruby 1.9 - Feature #4592][Open] Tempfileを直接保存したい — Takeyuki Fujioka <xibbar@...>

15 messages 2011/04/21

[#43453] ThreadGroup の強化案 — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

14 messages 2011/04/28
[#43901] ThreadGroup#make_local_space! (Re: ThreadGroup の強化案) — Hidetoshi NAGAI <nagai@...> 2011/06/25

永井@知能.九工大です.少々長いメールで失礼します.

[#43920] Re: ThreadGroup#make_local_space! (Re: ThreadGroup の強化案) — Urabe Shyouhei <shyouhei@...> 2011/06/26

ひっじょうに根本的な質問をするのですけれども、ThreadGroupって何に使うん

[#43978] Re: ThreadGroup#make_local_space! — Hidetoshi NAGAI <nagai@...> 2011/06/28

永井@知能.九工大です.

[ruby-dev:43417] [Ruby 1.9 - Feature #4592] Tempfileを直接保存したい

From: Shyouhei Urabe <shyouhei@...>
Date: 2011-04-21 08:17:02 UTC
List: ruby-dev #43417
Issue #4592 has been updated by Shyouhei Urabe.


* closeと同時というのを諦め、closeのちょっと後でよければ、普通にmvできるのではないでしょうか。
   irb(main):001:0> f = Tempfile.new('')
   => #<File:/tmp/20110421-7098-1bvjwc0>
   irb(main):002:0> f.puts("foobar")
   => nil
   irb(main):003:0> f.close; File.rename(f, "tmp.txt")
   => 0
   irb(main):008:0> File.read("tmp.txt")
   => "foobar\n"
* /tmpとRubyのカレントディレクトリが別パーティションだったら、どのみちコピーは発生するのではないでしょうか。
* Tempfileを保存したいというのはTempfileの意味からして本末転倒なのではないでしょうか。

といった感想を抱きました。
----------------------------------------
Feature #4592: Tempfileを直接保存したい
http://redmine.ruby-lang.org/issues/4592

Author: Takeyuki Fujioka
Status: Open
Priority: Normal
Assignee: 
Category: lib
Target version: 


Tempfileは一時ファイルなので、プロセスが消えたり、#closeすると、
ファイルが消えてしまいます。
Tempfileのデータを保存するために
一旦読みだして、書き込み用に別ファイルを開いて、
そこに書きこまなければいけません。
これが小さいファイルだったらいいのですが、
大きいファイルになると、
Tempfile#save みたいなメソッドを用意して、
closeと同時に保存ができると、
読みだして書きこむという無駄をなくすことができます。
10MB程度だったらいいのですが、500MとかのTempfileだと
かなり有効なメソッドだと思います。

#save とか #save! とか、何がいいかは議論の余地があると思います。


-- 
http://redmine.ruby-lang.org

In This Thread