Sha256: 1ed6f84194922c77da437a8e77af3680bd2b6d316a16698719ecb539fe7e5891

Contents?: true

Size: 683 Bytes

Versions: 6

Compression:

Stored size: 683 Bytes

Contents

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

6 entries across 6 versions & 2 rubygems

Version Path
freddy-1.4.1 lib/freddy/trace_carrier.rb
freddy-1.4.0 lib/freddy/trace_carrier.rb
freddy-1.3.3 lib/freddy/trace_carrier.rb
freddy-jruby-1.3.2 lib/freddy/trace_carrier.rb
freddy-1.3.2 lib/freddy/trace_carrier.rb
freddy-1.3.1 lib/freddy/trace_carrier.rb