Sha256: 58018c64938b7deeebba5233be53b311b65a70ecc06f036fc0da30fe76915b1b

Contents?: true

Size: 730 Bytes

Versions: 6

Compression:

Stored size: 730 Bytes

Contents

require "httparty"

module Artifactory
  module GemImport
    module Gems
      class Downloader
        def call(url, filename)
          download url, filename
        rescue Net::HTTPClientException, Net::HTTPFatalError, Net::OpenTimeout, SocketError => err # TODO handle file (-system) errors
          [:error, err.message]
        else
          [:ok, url]
        end

        private

        def download(url, filename)
          File.open(filename, "w") do |file|
            response = HTTParty.get(url, stream_body: true, follow_redirects: true) do |fragment|
              file.write fragment
            end

            response.error! unless response.success?
          end
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
artifactory-gem_import-1.1.0 lib/artifactory/gem_import/gems/downloader.rb
artifactory-gem_import-1.0.0 lib/artifactory/gem_import/gems/downloader.rb
artifactory-gem_import-0.2.2 lib/artifactory/gem_import/gems/downloader.rb
artifactory-gem_import-0.2.0 lib/artifactory/gem_import/gems/downloader.rb
artifactory-gem_import-0.1.4 lib/artifactory/gem_import/gems/downloader.rb
artifactory-gem_import-0.1.3 lib/artifactory/gem_import/gems/downloader.rb