Sha256: 0de7b40c7352fab9eaf8f36c025aad8829fd001d73adbed24dce5872f1f814f5

Contents?: true

Size: 1.66 KB

Versions: 20

Compression:

Stored size: 1.66 KB

Contents

# encoding: utf-8
# This file is distributed under New Relic's license terms.
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.

module NewRelic
  module Agent
    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

          @method = @datum[:method].to_s.upcase
          @scheme = @datum[:scheme]
          @port   = @datum[:port]
          @path   = @datum[:path]

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

        attr_reader :host, :method

        def type
          "Excon"
        end

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

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

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

Version data entries

20 entries across 20 versions & 2 rubygems

Version Path
newrelic_rpm-3.17.2.327 lib/new_relic/agent/http_clients/excon_wrappers.rb
newrelic_rpm-3.17.1.326 lib/new_relic/agent/http_clients/excon_wrappers.rb
newrelic_rpm-3.17.0.325 lib/new_relic/agent/http_clients/excon_wrappers.rb
newrelic_rpm-3.16.3.323 lib/new_relic/agent/http_clients/excon_wrappers.rb
newrelic_rpm-3.16.2.321 lib/new_relic/agent/http_clients/excon_wrappers.rb
newrelic_rpm-3.16.1.320 lib/new_relic/agent/http_clients/excon_wrappers.rb
newrelic_rpm-3.16.0.318 lib/new_relic/agent/http_clients/excon_wrappers.rb
ish_lib_manager-0.0.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.15.2.317/lib/new_relic/agent/http_clients/excon_wrappers.rb
newrelic_rpm-3.15.2.317 lib/new_relic/agent/http_clients/excon_wrappers.rb
newrelic_rpm-3.15.1.316 lib/new_relic/agent/http_clients/excon_wrappers.rb
newrelic_rpm-3.15.0.314 lib/new_relic/agent/http_clients/excon_wrappers.rb
newrelic_rpm-3.14.3.313 lib/new_relic/agent/http_clients/excon_wrappers.rb
newrelic_rpm-3.14.2.312 lib/new_relic/agent/http_clients/excon_wrappers.rb
newrelic_rpm-3.14.1.311 lib/new_relic/agent/http_clients/excon_wrappers.rb
newrelic_rpm-3.14.0.305 lib/new_relic/agent/http_clients/excon_wrappers.rb
newrelic_rpm-3.13.2.302 lib/new_relic/agent/http_clients/excon_wrappers.rb
newrelic_rpm-3.13.1.300 lib/new_relic/agent/http_clients/excon_wrappers.rb
newrelic_rpm-3.13.0.299 lib/new_relic/agent/http_clients/excon_wrappers.rb
newrelic_rpm-3.12.1.298 lib/new_relic/agent/http_clients/excon_wrappers.rb
newrelic_rpm-3.12.0.288 lib/new_relic/agent/http_clients/excon_wrappers.rb