Sha256: 649523dc7d598d658fd35dc05c8e5046fd39f8b49b588d57f70942ba8db84fd7

Contents?: true

Size: 877 Bytes

Versions: 9

Compression:

Stored size: 877 Bytes

Contents

# typed: false

require_relative '../helpers'

module Datadog
  module Tracing
    module Distributed
      module Headers
        # Parser provides easy access and validation methods for Rack headers
        class Parser
          def initialize(env)
            @env = env
          end

          # TODO: Don't assume Rack format.
          #       Make distributed tracing headers apathetic.
          def header(name)
            rack_header = "http-#{name}".upcase!.tr('-', '_')

            hdr = @env[rack_header]

            # Only return the value if it is not an empty string
            hdr if hdr != ''
          end

          def id(hdr, base = 10)
            Helpers.value_to_id(header(hdr), base)
          end

          def number(hdr, base = 10)
            Helpers.value_to_number(header(hdr), base)
          end
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
ddtrace-1.6.1 lib/datadog/tracing/distributed/headers/parser.rb
ddtrace-1.6.0 lib/datadog/tracing/distributed/headers/parser.rb
ddtrace-1.5.2 lib/datadog/tracing/distributed/headers/parser.rb
ddtrace-1.5.1 lib/datadog/tracing/distributed/headers/parser.rb
ddtrace-1.5.0 lib/datadog/tracing/distributed/headers/parser.rb
ddtrace-1.4.2 lib/datadog/tracing/distributed/headers/parser.rb
ddtrace-1.4.1 lib/datadog/tracing/distributed/headers/parser.rb
ddtrace-1.4.0 lib/datadog/tracing/distributed/headers/parser.rb
ddtrace-1.3.0 lib/datadog/tracing/distributed/headers/parser.rb