Sha256: 337914254ffd412178fd92c42ed03c1a8a5a7256e40edd93f3b3fca6b54effda

Contents?: true

Size: 714 Bytes

Versions: 4

Compression:

Stored size: 714 Bytes

Contents

# frozen_string_literal: true

class Freddy
  # Carrier for rabbitmq following OpenTracing API
  # See https://github.com/opentracing/opentracing-ruby/blob/master/lib/opentracing/carrier.rb
  class TraceCarrier
    def initialize(properties)
      @properties = properties
    end

    def [](key)
      @properties.headers && @properties.headers["x-trace-#{key}"]
    end

    def []=(key, value)
      @properties[:headers] ||= {}
      @properties[:headers]["x-trace-#{key}"] = value
    end

    def each(&block)
      Hash[
        (@properties.headers || {})
        .select { |key, _| key =~ /^x-trace/ }
        .map { |key, value| [key.sub(/x-trace-/, ''), value] }
      ].each(&block)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
freddy-1.7.0 lib/freddy/trace_carrier.rb
freddy-1.6.0 lib/freddy/trace_carrier.rb
freddy-1.5.0 lib/freddy/trace_carrier.rb
freddy-1.4.2 lib/freddy/trace_carrier.rb