Revision
4486
Author
lsansonetti@apple.com
Date
2010-08-31 22:11:53 -0700 (Tue, 31 Aug 2010)

Log Message

Dir.tmpdir: returns NSTemporaryDirectory() in last resort and not /tmp

Modified Paths

Diff

Modified: MacRuby/trunk/lib/tmpdir.rb (4485 => 4486)


--- MacRuby/trunk/lib/tmpdir.rb	2010-09-01 03:45:08 UTC (rev 4485)
+++ MacRuby/trunk/lib/tmpdir.rb	2010-09-01 05:11:53 UTC (rev 4486)
@@ -12,22 +12,28 @@
 
 class Dir
 
-  @@systmpdir ||= defined?(Etc.systmpdir) ? Etc.systmpdir : '/tmp'
+  def Dir::systmpdir
+    @@systmpdir ||= begin
+      framework 'Foundation' 
+      NSTemporaryDirectory()
+    end
+  end
 
   ##
   # Returns the operating system's temporary file path.
 
   def Dir::tmpdir
-    tmp = '.'
+    tmp = nil
     if $SAFE > 0
-      tmp = @@systmpdir
+      tmp = systmpdir
     else
-      for dir in [ENV['TMPDIR'], ENV['TMP'], ENV['TEMP'], @@systmpdir, '/tmp']
+      for dir in [ENV['TMPDIR'], ENV['TMP'], ENV['TEMP']]
 	if dir and stat = File.stat(dir) and stat.directory? and stat.writable?
 	  tmp = dir
 	  break
 	end rescue nil
       end
+      tmp ||= systmpdir
       File.expand_path(tmp)
     end
   end