Sha256: 07e70b3d2bb6266f3c0f713d473acb77d94786e6939ce42c40aba82946678aea

Contents?: true

Size: 961 Bytes

Versions: 4

Compression:

Stored size: 961 Bytes

Contents

# frozen_string_literal: true

class Freddy
  class Delivery
    attr_reader :routing_key, :payload, :tag

    def initialize(payload, metadata, routing_key, tag)
      @payload = payload
      @metadata = metadata
      @routing_key = routing_key
      @tag = tag
    end

    def correlation_id
      @metadata.correlation_id
    end

    def type
      @metadata.type
    end

    def reply_to
      @metadata.reply_to
    end

    def build_trace(operation_name, tags: {}, force_follows_from: false)
      carrier = TraceCarrier.new(@metadata)
      parent = OpenTracing.global_tracer.extract(OpenTracing::FORMAT_TEXT_MAP, carrier)

      references =
        if !parent
          []
        elsif force_follows_from
          [OpenTracing::Reference.follows_from(parent)]
        else
          [OpenTracing::Reference.child_of(parent)]
        end

      OpenTracing.start_active_span(operation_name, references: references, tags: tags)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

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