ruby-changes:1937
From: ko1@a...
Date: 11 Sep 2007 17:28:42 +0900
Subject: [ruby-changes:1937] knu - Ruby:r13428 (trunk): * lib/tempfile.rb (Tempfile::make_tmpname): Allow to specify a
knu 2007-09-11 17:28:29 +0900 (Tue, 11 Sep 2007)
New Revision: 13428
Modified files:
trunk/ChangeLog
trunk/lib/tempfile.rb
Log:
* lib/tempfile.rb (Tempfile::make_tmpname): Allow to specify a
suffix for a temporary file name.
* lib/tempfile.rb (Tempfile::make_tmpname): Make temporary file
names less predictable by including a random string.
[inspired by: akr]
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/tempfile.rb?r1=13428&r2=13427
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=13428&r2=13427
Index: ChangeLog
===================================================================
--- ChangeLog (revision 13427)
+++ ChangeLog (revision 13428)
@@ -1,3 +1,12 @@
+Tue Sep 11 17:28:00 2007 Akinori MUSHA <knu@i...>
+
+ * lib/tempfile.rb (Tempfile::make_tmpname): Allow to specify a
+ suffix for a temporary file name.
+
+ * lib/tempfile.rb (Tempfile::make_tmpname): Make temporary file
+ names less predictable by including a random string.
+ [inspired by: akr]
+
Tue Sep 11 17:25:59 2007 Akinori MUSHA <knu@i...>
* lib/shellwords.rb: Add shellescape() and shelljoin().
Index: lib/tempfile.rb
===================================================================
--- lib/tempfile.rb (revision 13427)
+++ lib/tempfile.rb (revision 13428)
@@ -15,10 +15,16 @@
@@cleanlist = []
@@lock = Mutex.new
- # Creates a temporary file of mode 0600 in the temporary directory
- # whose name is basename.pid.n and opens with mode "w+". A Tempfile
- # object works just like a File object.
+ # Creates a temporary file of mode 0600 in the temporary directory,
+ # opens it with mode "w+", and returns a Tempfile object which
+ # represents the created temporary file. A Tempfile object can be
+ # treated just like a normal File object.
#
+ # The basename parameter is used to determine the name of a
+ # temporary file. If an Array is given, the first element is used
+ # as prefix string and the second as suffix string, respectively.
+ # Otherwise it is treated as prefix string.
+ #
# If tmpdir is omitted, the temporary directory is determined by
# Dir::tmpdir provided by 'tmpdir.rb'.
# When $SAFE > 0 and the given tmpdir is tainted, it uses
@@ -65,7 +71,15 @@
end
def make_tmpname(basename, n)
- sprintf('%s.%d.%d', basename, $$, n)
+ case basename
+ when Array
+ prefix, suffix = *basename
+ else
+ prefix, suffix = basename, ''
+ end
+
+ t = Time.now.strftime("%Y%m%d")
+ path = "#{prefix}#{t}-#{$$}-#{rand(0x100000000).to_s(36)}-#{n}#{suffix}"
end
private :make_tmpname
--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml