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.217.1 lib/instana/frameworks/cuba.rb
instana-1.217.0 lib/instana/frameworks/cuba.rb
instana-1.216.0 lib/instana/frameworks/cuba.rb
instana-1.215.1 lib/instana/frameworks/cuba.rb
instana-1.215.0 lib/instana/frameworks/cuba.rb
instana-1.214.4 lib/instana/frameworks/cuba.rb
instana-1.214.3 lib/instana/frameworks/cuba.rb
instana-1.214.2 lib/instana/frameworks/cuba.rb
instana-1.214.1 lib/instana/frameworks/cuba.rb
instana-1.214.0 lib/instana/frameworks/cuba.rb
instana-1.213.3 lib/instana/frameworks/cuba.rb
instana-1.213.2 lib/instana/frameworks/cuba.rb
instana-1.213.1 lib/instana/frameworks/cuba.rb
instana-1.213.0 lib/instana/frameworks/cuba.rb
instana-1.212.0 lib/instana/frameworks/cuba.rb
instana-1.211.0 lib/instana/frameworks/cuba.rb
instana-1.210.1 lib/instana/frameworks/cuba.rb
instana-1.210.0 lib/instana/frameworks/cuba.rb
instana-1.209.8 lib/instana/frameworks/cuba.rb
instana-1.209.7 lib/instana/frameworks/cuba.rb