Sha256: ec99b5c97bab3496fb381674b3a40c4436333c0532df27bed007b88690279795

Contents?: true

Size: 809 Bytes

Versions: 64

Compression:

Stored size: 809 Bytes

Contents

# (c) Copyright IBM Corp. 2021
# (c) Copyright Instana Inc. 2016

require "instana/rack"

module Instana
  module CubaPathTemplateExtractor
    REPLACE_TARGET = /:(?<term>[^\/]+)/i

    def self.prepended(base)
      ::Instana.logger.debug "#{base} prepended #{self}"
    end

    def on(*args, &blk)
      wrapper = lambda do |*caputres|
        env['INSTANA_PATH_TEMPLATE_FRAGMENTS'] << args
          .select { |a| a.is_a?(String) }
          .join('/')

        blk.call(*captures)
      end

      super(*args, &wrapper)
    end

    def call!(env)
      env['INSTANA_PATH_TEMPLATE_FRAGMENTS'] = []
      response = super(env)
      env['INSTANA_HTTP_PATH_TEMPLATE'] = env['INSTANA_PATH_TEMPLATE_FRAGMENTS']
        .join('/')
        .gsub(REPLACE_TARGET, '{\k<term>}')
      response
    end
  end
end

Version data entries

64 entries across 64 versions & 1 rubygems

Version Path
instana-1.209.6 lib/instana/frameworks/cuba.rb
instana-1.209.5 lib/instana/frameworks/cuba.rb
instana-1.209.4 lib/instana/frameworks/cuba.rb
instana-1.209.3 lib/instana/frameworks/cuba.rb
instana-1.209.2 lib/instana/frameworks/cuba.rb
instana-1.209.1 lib/instana/frameworks/cuba.rb
instana-1.209.0.pre3 lib/instana/frameworks/cuba.rb
instana-1.209.0.pre2 lib/instana/frameworks/cuba.rb
instana-1.209.0.pre1 lib/instana/frameworks/cuba.rb
instana-1.208.0 lib/instana/frameworks/cuba.rb
instana-1.207.0 lib/instana/frameworks/cuba.rb
instana-1.206.0 lib/instana/frameworks/cuba.rb
instana-1.205.0 lib/instana/frameworks/cuba.rb
instana-1.204.0 lib/instana/frameworks/cuba.rb
instana-1.204.0.pre3 lib/instana/frameworks/cuba.rb
instana-1.204.0.pre2 lib/instana/frameworks/cuba.rb
instana-1.204.0.pre1 lib/instana/frameworks/cuba.rb
instana-1.203.2 lib/instana/frameworks/cuba.rb
instana-1.203.1 lib/instana/frameworks/cuba.rb
instana-1.203.0 lib/instana/frameworks/cuba.rb