Sha256: ad76785aac549c73af510513e8f2fece129e74d4e18ff0888f550c2c16cab300

Contents?: true

Size: 944 Bytes

Versions: 70

Compression:

Stored size: 944 Bytes

Contents

require 'ddtrace/ext/http'

module Datadog
  module Contrib
    module Sinatra
      # Gets and sets trace information from a Rack headers Hash
      module Headers
        module_function

        def response_header_tags(headers, target_headers)
          target_headers ||= []

          {}.tap do |result|
            target_headers.each do |header|
              if headers.key?(header)
                result[Datadog::Ext::HTTP::ResponseHeaders.to_tag(header)] = headers[header]
              else
                # Try a case-insensitive lookup
                uppercased_header = header.to_s.upcase
                matching_header = headers.keys.find { |h| h.upcase == uppercased_header }
                if matching_header
                  result[Datadog::Ext::HTTP::ResponseHeaders.to_tag(header)] = headers[matching_header]
                end
              end
            end
          end
        end
      end
    end
  end
end

Version data entries

70 entries across 70 versions & 2 rubygems

Version Path
ddtrace-0.45.0 lib/ddtrace/contrib/sinatra/headers.rb
ddtrace-0.44.0 lib/ddtrace/contrib/sinatra/headers.rb
ddtrace-0.43.0 lib/ddtrace/contrib/sinatra/headers.rb
ddtrace-0.42.0 lib/ddtrace/contrib/sinatra/headers.rb
ddtrace-0.41.0 lib/ddtrace/contrib/sinatra/headers.rb
ls-trace-0.2.0 lib/ddtrace/contrib/sinatra/headers.rb
ddtrace-0.40.0 lib/ddtrace/contrib/sinatra/headers.rb
ddtrace-0.39.0 lib/ddtrace/contrib/sinatra/headers.rb
ddtrace-0.38.0 lib/ddtrace/contrib/sinatra/headers.rb
ddtrace-0.37.0 lib/ddtrace/contrib/sinatra/headers.rb
ddtrace-0.36.0 lib/ddtrace/contrib/sinatra/headers.rb
ls-trace-0.1.2 lib/ddtrace/contrib/sinatra/headers.rb
ddtrace-0.35.2 lib/ddtrace/contrib/sinatra/headers.rb
ddtrace-0.35.1 lib/ddtrace/contrib/sinatra/headers.rb
ddtrace-0.35.0 lib/ddtrace/contrib/sinatra/headers.rb
ddtrace-0.34.2 lib/ddtrace/contrib/sinatra/headers.rb
ddtrace-0.34.1 lib/ddtrace/contrib/sinatra/headers.rb
ddtrace-0.34.0 lib/ddtrace/contrib/sinatra/headers.rb
ddtrace-0.33.1 lib/ddtrace/contrib/sinatra/headers.rb
ddtrace-0.33.0 lib/ddtrace/contrib/sinatra/headers.rb