1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* lib/tmpdir.rb (Dir::tmpdir): test the current directory suitable for

temporary directory.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34988 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2012-03-12 11:19:42 +00:00
parent 5e3009aa45
commit b681457f01
2 changed files with 12 additions and 4 deletions

View file

@ -1,3 +1,8 @@
Mon Mar 12 20:19:25 2012 Tanaka Akira <akr@fsij.org>
* lib/tmpdir.rb (Dir::tmpdir): test the current directory suitable for
temporary directory.
Mon Mar 12 20:08:16 2012 Tanaka Akira <akr@fsij.org>
* lib/fileutils.rb (fu_have_symlink?): specify TypeError for rescue

View file

@ -18,18 +18,21 @@ class Dir
# Returns the operating system's temporary file path.
def Dir::tmpdir
tmp = '.'
if $SAFE > 0
tmp = @@systmpdir
else
for dir in [ENV['TMPDIR'], ENV['TMP'], ENV['TEMP'], @@systmpdir, '/tmp']
if dir and stat = File.stat(dir) and stat.directory? and stat.writable? and
tmp = nil
for dir in [ENV['TMPDIR'], ENV['TMP'], ENV['TEMP'], @@systmpdir, '/tmp', '.']
next if !dir
dir = File.expand_path(dir)
if stat = File.stat(dir) and stat.directory? and stat.writable? and
(!stat.world_writable? or stat.sticky?)
tmp = dir
break
end rescue nil
end
File.expand_path(tmp)
raise ArgumentError, "could not find a temporary directory" if !tmp
tmp
end
end