lib/down/net_http.rb in down-3.2.0 vs lib/down/net_http.rb in down-4.0.0
- old
+ new
@@ -1,35 +1,25 @@
+# frozen-string-literal: true
+
require "open-uri"
require "net/http"
-require "down/version"
-require "down/chunked_io"
-require "down/errors"
+require "down/backend"
require "tempfile"
require "fileutils"
require "cgi"
module Down
- module_function
+ class NetHttp < Backend
+ def initialize(options = {})
+ @options = options
+ end
- def download(uri, options = {})
- NetHttp.download(uri, options)
- end
-
- def open(uri, options = {})
- NetHttp.open(uri, options)
- end
-
- def copy_to_tempfile(basename, io)
- NetHttp.copy_to_tempfile(basename, io)
- end
-
- module NetHttp
- module_function
-
def download(uri, options = {})
+ options = @options.merge(options)
+
max_size = options.delete(:max_size)
max_redirects = options.delete(:max_redirects) || 2
progress_proc = options.delete(:progress_proc)
content_length_proc = options.delete(:content_length_proc)
@@ -63,11 +53,11 @@
else
open_uri_options[:proxy] = proxy.to_s
end
end
- open_uri_options.update(options)
+ open_uri_options.merge!(options)
tries = max_redirects + 1
begin
uri = URI(uri)
@@ -120,10 +110,12 @@
downloaded_file.extend DownloadedFile
downloaded_file
end
def open(uri, options = {})
+ options = @options.merge(options)
+
begin
uri = URI(uri)
if uri.class != URI::HTTP && uri.class != URI::HTTPS
raise Down::InvalidUrl, "URL scheme needs to be http or https"
end
@@ -195,11 +187,13 @@
response: response,
},
)
end
+ private
+
def copy_to_tempfile(basename, io)
- tempfile = Tempfile.new(["down", File.extname(basename)], binmode: true)
+ tempfile = Tempfile.new(["down-net_http", 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