Sha256: 0e6e20e04c179b4a19784819b94409034eb8841ea73df289cb427f668590fc6e

Contents?: true

Size: 1.41 KB

Versions: 39

Compression:

Stored size: 1.41 KB

Contents

# encoding: utf-8

module OneApm
  module Support
    module HTTPClients
      class ExconHTTPResponse
        def initialize(response)
          @response = response
          # Since HTTP headers are case-insensitive, we normalize all of them to
          # upper case here, and then also in our [](key) implementation.
          @normalized_headers = {}
          headers = response.respond_to?(:headers) ? response.headers : response[:headers]
          (headers || {}).each do |key, val|
            @normalized_headers[key.upcase] = val
          end
        end

        def [](key)
          @normalized_headers[key.upcase]
        end

        def to_hash
          @normalized_headers.dup
        end
      end

      class ExconHTTPRequest
        def initialize(datum)
          @datum = datum
        end

        def type
          "Excon"
        end

        def host
          if hostname = (self['host'] || self['Host'])
            hostname.split(':').first
          else
            @datum[:host]
          end
        end

        def method
          @datum[:method].to_s.upcase
        end

        def [](key)
          @datum[:headers][key]
        end

        def []=(key, value)
          @datum[:headers] ||= {}
          @datum[:headers][key] = value
        end

        def uri
          URI.parse("#{@datum[:scheme]}://#{@datum[:host]}:#{@datum[:port]}#{@datum[:path]}")
        end
      end
    end
  end
end

Version data entries

39 entries across 39 versions & 1 rubygems

Version Path
oneapm_rpm-1.3.7 lib/one_apm/support/http_clients/excon_wrappers.rb
oneapm_rpm-1.3.7.rc1 lib/one_apm/support/http_clients/excon_wrappers.rb
oneapm_rpm-1.3.6 lib/one_apm/support/http_clients/excon_wrappers.rb
oneapm_rpm-1.3.6.rc1 lib/one_apm/support/http_clients/excon_wrappers.rb
oneapm_rpm-1.3.5 lib/one_apm/support/http_clients/excon_wrappers.rb
oneapm_rpm-1.3.5.rc1 lib/one_apm/support/http_clients/excon_wrappers.rb
oneapm_rpm-1.3.4 lib/one_apm/support/http_clients/excon_wrappers.rb
oneapm_rpm-1.3.4.rc1 lib/one_apm/support/http_clients/excon_wrappers.rb
oneapm_rpm-1.3.3 lib/one_apm/support/http_clients/excon_wrappers.rb
oneapm_rpm-1.3.3.rc1 lib/one_apm/support/http_clients/excon_wrappers.rb
oneapm_rpm-1.3.2 lib/one_apm/support/http_clients/excon_wrappers.rb
oneapm_rpm-1.3.2.rc1 lib/one_apm/support/http_clients/excon_wrappers.rb
oneapm_rpm-1.3.1 lib/one_apm/support/http_clients/excon_wrappers.rb
oneapm_rpm-1.3.1.rc1 lib/one_apm/support/http_clients/excon_wrappers.rb
oneapm_rpm-1.3.0 lib/one_apm/support/http_clients/excon_wrappers.rb
oneapm_rpm-1.3.0.rc1 lib/one_apm/support/http_clients/excon_wrappers.rb
oneapm_rpm-1.2.9 lib/one_apm/support/http_clients/excon_wrappers.rb
oneapm_rpm-1.2.9.rc1 lib/one_apm/support/http_clients/excon_wrappers.rb
oneapm_rpm-1.2.8 lib/one_apm/support/http_clients/excon_wrappers.rb
oneapm_rpm-1.2.8.rc1 lib/one_apm/support/http_clients/excon_wrappers.rb