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