lib/down.rb in down-2.2.0 vs lib/down.rb in down-2.2.1
- old
+ new
@@ -18,11 +18,11 @@
max_redirects = options.delete(:max_redirects) || 2
progress_proc = options.delete(:progress_proc) || options.delete(:progress)
content_length_proc = options.delete(:content_length_proc)
timeout = options.delete(:timeout)
- requests_left = max_redirects + 1
+ tries = max_redirects + 1
begin
uri = URI.parse(url)
downloaded_file = uri.open({
"User-Agent" => "Down/1.0.0",
@@ -39,13 +39,13 @@
progress_proc.call(current_size) if progress_proc
},
read_timeout: timeout,
redirect: false,
}.merge(options))
- rescue OpenURI::HTTPRedirect => error
- url = error.uri.to_s
- retry if (requests_left -= 1) > 0
+ rescue OpenURI::HTTPRedirect => redirect
+ url = redirect.uri.to_s
+ retry if (tries -= 1) > 0
raise Down::NotFound, "too many redirects"
rescue => error
raise if error.is_a?(Down::Error)
raise Down::NotFound, "file not found"
end
@@ -93,9 +93,11 @@
end
def copy_to_tempfile(basename, io)
tempfile = Tempfile.new(["down", File.extname(basename)], binmode: true)
if io.is_a?(OpenURI::Meta) && io.is_a?(Tempfile)
+ io.close
+ tempfile.close
FileUtils.mv io.path, tempfile.path
else
IO.copy_stream(io, tempfile)
io.rewind
end