From: noreply@... Date: 2007-05-30T10:44:13+09:00 Subject: [ ruby-Bugs-6764 ] tempfile.rb should let you preserve a file Bugs item #6764, was opened at 2006-11-18 10:09 You can respond by visiting: http://rubyforge.org/tracker/?func=detail&atid=1698&aid=6764&group_id=426 Category: Files / Dirs / IO Group: None >Status: Closed >Resolution: Rejected Priority: 3 Submitted By: David Welton (davidw) Assigned to: Nobody (None) Summary: tempfile.rb should let you preserve a file Initial Comment: Hello, this is not a bug but a feature request. Perhaps these should be addressed to some other place? In any case: There are times when it would be nice to not automatically delete Tempfiles - when debugging for instance, but also in cases when an error occurs and you want to be able to examine what was going on. What would be fantastic is a 'preserve' method that you can call that prevents the file from being 'reaped'. I wasn't able to implement a patch to do this, unfortunately. ---------------------------------------------------------------------- >Comment By: Ryan Davis (zenspider) Date: 2007-05-29 18:44 Message: Alternatively, if you're debugging you can do something like the following: file_klass = $DEBUG ? File : Tempfile file_klass.open "blah.txt" do |f| # ... end or, always use Tempfile.open but move the file if you want to keep it: Tempfile.open("blah.txt") do |f| # ... File.rename f.path, "keep.txt" if $DEBUG end ---------------------------------------------------------------------- Comment By: Shyouhei Urabe (shyouhei) Date: 2007-05-29 16:03 Message: Tempfiles won't be unlinked until: (1) you pass a non-false value to the argument to Tempfile#close (2) or the GC collects the instance so if you want not delete a Tempfile, just hold the instance. f = Tempfile.new("foo") ... f.close(false) # preserve ... f = nil # and GC will delete the file ---------------------------------------------------------------------- You can respond by visiting: http://rubyforge.org/tracker/?func=detail&atid=1698&aid=6764&group_id=426