Sha256: 9cea7020578d003d7b7c210dcd193671621f50ceaa084d10ecdc2af44e521107

Contents?: true

Size: 1 KB

Versions: 10

Compression:

Stored size: 1 KB

Contents

# typed: ignore

# Copyright (c) 2015 Sqreen. All Rights Reserved.
# Please refer to our terms for more information: https://www.sqreen.com/terms.html

require 'sqreen/ecosystem/module_registry'
require 'sqreen/ecosystem/transaction_storage'
require 'sqreen/ecosystem/module_api/signal_producer'

module Sqreen
  module Ecosystem
    class TracingIdSetup
      # @param [Array<Sqreen::Ecosystem::ModuleApi::SignalProducer>] signal_producer_modules
      def initialize(signal_producer_modules)
        @modules = signal_producer_modules
        @tracing_id_prefix = nil
      end

      def setup_modules
        inject_out_of_tx_tracing_id_gen
      end

      attr_writer :tracing_id_prefix

      private

      def inject_out_of_tx_tracing_id_gen
        @modules.each do |mod|
          mod.tracing_id_producer = method(:generate_tracing_id)
        end
      end

      def generate_tracing_id
        return nil unless @tracing_id_prefix
        "#{@tracing_id_prefix}.#{SecureRandom.uuid}"
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
sqreen-1.25.1 lib/sqreen/ecosystem/tracing_id_setup.rb
sqreen-1.25.0 lib/sqreen/ecosystem/tracing_id_setup.rb
sqreen-1.24.3 lib/sqreen/ecosystem/tracing_id_setup.rb
sqreen-1.24.2 lib/sqreen/ecosystem/tracing_id_setup.rb
sqreen-1.24.1 lib/sqreen/ecosystem/tracing_id_setup.rb
sqreen-1.24.0 lib/sqreen/ecosystem/tracing_id_setup.rb
sqreen-1.23.2 lib/sqreen/ecosystem/tracing_id_setup.rb
sqreen-1.23.1 lib/sqreen/ecosystem/tracing_id_setup.rb
sqreen-1.23.0 lib/sqreen/ecosystem/tracing_id_setup.rb
sqreen-1.22.1 lib/sqreen/ecosystem/tracing_id_setup.rb