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