Sha256: 052389e2216802cb9be34f0d43e583bbcd29ae4aaa38d1564079bd5ef73c72a1

Contents?: true

Size: 700 Bytes

Versions: 5

Compression:

Stored size: 700 Bytes

Contents

# frozen_string_literal: true

module Spandx
  module Gateways
    class Http
      attr_reader :driver

      def initialize(driver: Http.default_driver)
        @driver = driver
      end

      def get(uri, default: nil)
        driver.with_retry do |client|
          client.get(Addressable::URI.escape(uri))
        end
      rescue *Net::Hippie::CONNECTION_ERRORS
        default
      end

      def ok?(response)
        response.is_a?(Net::HTTPSuccess)
      end

      def self.default_driver
        @default_driver ||= Net::Hippie::Client.new.tap do |client|
          client.logger = ::Logger.new('http.log')
          client.follow_redirects = 3
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
spandx-0.7.0 lib/spandx/gateways/http.rb
spandx-0.6.0 lib/spandx/gateways/http.rb
spandx-0.5.0 lib/spandx/gateways/http.rb
spandx-0.4.1 lib/spandx/gateways/http.rb
spandx-0.4.0 lib/spandx/gateways/http.rb