[前][次][番号順一覧][スレッド一覧]

ruby-changes:19678

From: nobu <ko1@a...>
Date: Wed, 25 May 2011 08:01:14 +0900 (JST)
Subject: [ruby-changes:19678] nobu:r31723 (trunk): * lib/tempfile.rb (Tempfile.{mkdir,rmdir}): revert for backward

nobu	2011-05-25 07:58:18 +0900 (Wed, 25 May 2011)

  New Revision: 31723

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=31723

  Log:
    * lib/tempfile.rb (Tempfile.{mkdir,rmdir}): revert for backward
      compatibility.

  Modified files:
    trunk/ChangeLog
    trunk/lib/tempfile.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 31722)
+++ ChangeLog	(revision 31723)
@@ -1,3 +1,8 @@
+Wed May 25 07:58:14 2011  Nobuyoshi Nakada  <nobu@r...>
+
+	* lib/tempfile.rb (Tempfile.{mkdir,rmdir}): revert for backward
+	  compatibility.
+
 Wed May 25 07:13:12 2011  Nobuyoshi Nakada  <nobu@r...>
 
 	* spec/README: update the description.
Index: lib/tempfile.rb
===================================================================
--- lib/tempfile.rb	(revision 31722)
+++ lib/tempfile.rb	(revision 31723)
@@ -141,12 +141,9 @@
       else
         opts = perm
       end
-      lock = self.class.lock_tempfile(tmpname)
-      begin
+      self.class.locking(tmpname) do
         @data[1] = @tmpfile = File.open(tmpname, mode, opts)
         @data[0] = @tmpname = tmpname
-      ensure
-        self.class.unlock_tempfile(lock)
       end
       @mode = mode & ~(File::CREAT|File::EXCL)
       perm or opts.freeze
@@ -327,17 +324,23 @@
 
     # :stopdoc:
 
-    # makes lock for +tmpname+ and returns the lock.
-    def lock_tempfile(tmpname)
+    # yields with locking for +tmpname+ and returns the result of the
+    # block.
+    def locking(tmpname)
       lock = tmpname + '.lock'
-      Dir.mkdir(lock)
-      lock
+      mkdir(lock)
+      yield
+    ensure
+      rmdir(lock) if lock
     end
 
-    # unlock the lock made by _lock_tempfile_.
-    def unlock_tempfile(lock)
-      Dir.rmdir(lock)
+    def mkdir(*args)
+      Dir.mkdir(*args)
     end
+
+    def rmdir(*args)
+      Dir.rmdir(*args)
+    end
   end
 end
 

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]