about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2011-12-08 03:38:55 +0000
committerEric Wong <normalperson@yhbt.net>2011-12-08 03:38:55 +0000
commit581148337d8345a09b32bf7c82f051eb438b6383 (patch)
treea4eccfc519396b7ea38697c327963b0fcca7a446
parentad559b036966ba5797ac53a70e17342640d07952 (diff)
downloadmogilefs-client-581148337d8345a09b32bf7c82f051eb438b6383.tar.gz
This makes it easier to use an unlinked Tempfile
-rw-r--r--lib/mogilefs/http_file.rb4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/mogilefs/http_file.rb b/lib/mogilefs/http_file.rb
index bd0b53b..b3a664f 100644
--- a/lib/mogilefs/http_file.rb
+++ b/lib/mogilefs/http_file.rb
@@ -102,7 +102,7 @@ class MogileFS::HTTPFile < StringIO
       file_size = put_streaming_io(sock, uri)
     elsif @big_io
       if String === @big_io || @big_io.respond_to?(:to_path)
-        file = File.open(@big_io)
+        file = @big_io.respond_to?(:stat) ? @big_io : File.open(@big_io)
         stat = file.stat
         file_size = request_put(sock, uri, stat.file? ? stat.size : nil, file)
       else
@@ -126,7 +126,7 @@ class MogileFS::HTTPFile < StringIO
       rewind_or_raise!(uri, err)
       raise
     ensure
-      file.close if file
+      file.close if file && @big_io != file
       sock.close if sock
   end