diff options
Diffstat (limited to 'lib/mogilefs/copy_stream.rb')
-rw-r--r-- | lib/mogilefs/copy_stream.rb | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/mogilefs/copy_stream.rb b/lib/mogilefs/copy_stream.rb new file mode 100644 index 0000000..922eb71 --- /dev/null +++ b/lib/mogilefs/copy_stream.rb @@ -0,0 +1,19 @@ +# -*- encoding: binary -*- + +# internal compatibility class for older Rubies +module MogileFS::CopyStream # :nodoc: + def self.copy_stream(src, dst) + src_io = String === src ? File.open(src) : src + buf = "" + written = 0 + begin + src_io.readpartial(0x4000, buf) + written += dst.write(buf) + rescue EOFError + break + end while true + written + ensure + src_io.close if String === src + end +end |