From 283050fc283868f79796f05901bd9149713ae282 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 5 Nov 2011 02:34:35 +0000 Subject: redo IO.copy_stream usage Avoid deepening stack depth and make it easier to migrate fully to 1.9 in the future (dropping 1.8 support). --- lib/mogilefs/mogilefs.rb | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'lib/mogilefs/mogilefs.rb') diff --git a/lib/mogilefs/mogilefs.rb b/lib/mogilefs/mogilefs.rb index 8679d2e..812fba6 100644 --- a/lib/mogilefs/mogilefs.rb +++ b/lib/mogilefs/mogilefs.rb @@ -8,7 +8,6 @@ require 'mogilefs/http_reader' class MogileFS::MogileFS < MogileFS::Client - include MogileFS::Util include MogileFS::Bigfile ## @@ -137,15 +136,15 @@ class MogileFS::MogileFS < MogileFS::Client raise MogileFS::ReadOnlyError if readonly? new_file key, klass do |mfp| - if file.respond_to?(:read) - copy_stream(file, mfp) + if file.respond_to?(:readpartial) + MogileFS::X.copy_stream(file, mfp) else size = File.size(file) if size > 0x10000 # Bigass file, handle differently mfp.big_io = file size else - File.open(file, "rb") { |fp| copy_stream(fp, mfp) } + MogileFS::X.copy_stream(file, mfp) end end end -- cgit v1.2.3-24-ge0c7