mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/tmpdir.rb (Dir.mktmpdir): make directory suffix specifiable.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13129 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
1ad3f7f582
commit
c4d6f4c01e
2 changed files with 32 additions and 5 deletions
|
@ -1,3 +1,7 @@
|
|||
Tue Aug 21 21:09:48 2007 Tanaka Akira <akr@fsij.org>
|
||||
|
||||
* lib/tmpdir.rb (Dir.mktmpdir): make directory suffix specifiable.
|
||||
|
||||
Tue Aug 21 15:00:23 2007 Koichi Sasada <ko1@atdot.net>
|
||||
|
||||
* st.c (st_clear): reset num_entries too.
|
||||
|
|
|
@ -48,14 +48,23 @@ class Dir
|
|||
# Dir.mktmpdir creates a temporary directory.
|
||||
#
|
||||
# The directory is created with 0700 permission.
|
||||
# The name of the directory is prefixed
|
||||
# with <i>prefix</i> argument.
|
||||
# If <i>prefix</i> is not given,
|
||||
# the prefix "d" is used.
|
||||
#
|
||||
# The prefix and suffix of the name of the directory is specified by
|
||||
# the optional first argument, <i>prefix_suffix</i>.
|
||||
# - If it is not specified or nil, "d" is used as the prefix and no suffix is used.
|
||||
# - If it is a string, it is used as the prefix and no suffix is used.
|
||||
# - If it is an array, first element is used as the prefix and second element is used as a suffix.
|
||||
#
|
||||
# Dir.mktmpdir {|dir| dir is ".../d..." }
|
||||
# Dir.mktmpdir("foo") {|dir| dir is ".../foo..." }
|
||||
# Dir.mktmpdir(["foo", "bar"]) {|dir| path is ".../foo...bar" }
|
||||
#
|
||||
# The directory is created under Dir.tmpdir or
|
||||
# the optional second argument <i>tmpdir</i> if non-nil value is given.
|
||||
#
|
||||
# Dir.mktmpdir {|dir| dir is "#{Dir.tmpdir}/d..." }
|
||||
# Dir.mktmpdir(nil, "/var/tmp") {|dir| dir is "/var/tmp/d..." }
|
||||
#
|
||||
# If a block is given,
|
||||
# it is yielded with the path of the directory.
|
||||
# The directory and its contents are removed
|
||||
|
@ -80,13 +89,27 @@ class Dir
|
|||
# FileUtils.remove_entry_secure dir
|
||||
# end
|
||||
#
|
||||
def Dir.mktmpdir(prefix="d", tmpdir=nil)
|
||||
def Dir.mktmpdir(prefix_suffix=nil, tmpdir=nil)
|
||||
case prefix_suffix
|
||||
when nil
|
||||
prefix = "d"
|
||||
suffix = ""
|
||||
when String
|
||||
prefix = prefix_suffix
|
||||
suffix = ""
|
||||
when Array
|
||||
prefix = prefix_suffix[0]
|
||||
suffix = prefix_suffix[1]
|
||||
else
|
||||
raise ArgumentError, "unexpected prefix_suffix: #{prefix_suffix.inspect}"
|
||||
end
|
||||
tmpdir ||= Dir.tmpdir
|
||||
t = Time.now.strftime("%Y%m%d")
|
||||
n = nil
|
||||
begin
|
||||
path = "#{tmpdir}/#{prefix}#{t}-#{$$}-#{rand(0x100000000).to_s(36)}"
|
||||
path << "-#{n}" if n
|
||||
path << suffix
|
||||
Dir.mkdir(path, 0700)
|
||||
rescue Errno::EEXIST
|
||||
n ||= 0
|
||||
|
|
Loading…
Reference in a new issue