Sha256: 21670e50948a33be9f1294d71b6eace15e0d6a8e2c4a78c5735113a0187082b7

Contents?: true

Size: 761 Bytes

Versions: 2

Compression:

Stored size: 761 Bytes

Contents

module RedirectUri
  class Request
    HTTP_HEADERS_OPTS = {
      accept: '*/*',
      user_agent: 'Redirect URI Discovery (https://rubygems.org/gems/redirect-uri)'
    }.freeze

    def initialize(uri)
      raise ArgumentError, "uri must be an Addressable::URI (given #{uri.class.name})" unless uri.is_a?(Addressable::URI)

      @uri = uri
    end

    def response
      @response ||= HTTP.follow.headers(HTTP_HEADERS_OPTS).timeout(
        connect: 10,
        read: 10
      ).get(@uri)
    rescue HTTP::ConnectionError => error
      raise ConnectionError, error
    rescue HTTP::TimeoutError => error
      raise TimeoutError, error
    rescue HTTP::Redirector::TooManyRedirectsError => error
      raise TooManyRedirectsError, error
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
redirect-uri-0.2.1 lib/redirect_uri/request.rb
redirect-uri-0.2.0 lib/redirect_uri/request.rb