Sha256: 75124ac6084ab7cddf11612eb65581a18f93fba240a66ec1e5f5067fbaa39544

Contents?: true

Size: 1.23 KB

Versions: 32

Compression:

Stored size: 1.23 KB

Contents

# This file is distributed under New Relic's license terms.
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
# frozen_string_literal: true

module NewRelic
  module Agent
    module Instrumentation
      module PadrinoTracer
        module Chain
          def self.instrument!
            ::Padrino::Routing::InstanceMethods.module_eval do
              include NewRelic::Agent::Instrumentation::Sinatra

              def dispatch_with_newrelic
                dispatch_with_tracing { dispatch_without_newrelic }
              end

              alias dispatch_without_newrelic dispatch!
              alias dispatch! dispatch_with_newrelic

              # Padrino 0.13 mustermann routing
              if private_method_defined?(:invoke_route)
                include NewRelic::Agent::Instrumentation::Padrino

                def invoke_route_with_newrelic(*args, &block)
                  invoke_route_with_tracing(*args) { invoke_route_without_newrelic(*args, &block) }
                end

                alias invoke_route_without_newrelic invoke_route
                alias invoke_route invoke_route_with_newrelic
              end
            end
          end
        end
      end
    end
  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
newrelic_rpm-9.2.2 lib/new_relic/agent/instrumentation/padrino/chain.rb
newrelic_rpm-9.2.1 lib/new_relic/agent/instrumentation/padrino/chain.rb
newrelic_rpm-9.2.0 lib/new_relic/agent/instrumentation/padrino/chain.rb
newrelic_rpm-9.1.0 lib/new_relic/agent/instrumentation/padrino/chain.rb
newrelic_rpm-9.0.0 lib/new_relic/agent/instrumentation/padrino/chain.rb
newrelic_rpm-8.16.0 lib/new_relic/agent/instrumentation/padrino/chain.rb
newrelic_rpm-8.15.0 lib/new_relic/agent/instrumentation/padrino/chain.rb
newrelic_rpm-8.14.0 lib/new_relic/agent/instrumentation/padrino/chain.rb
newrelic_rpm-8.13.1 lib/new_relic/agent/instrumentation/padrino/chain.rb
newrelic_rpm-8.13.0 lib/new_relic/agent/instrumentation/padrino/chain.rb
newrelic_rpm-8.12.0 lib/new_relic/agent/instrumentation/padrino/chain.rb
newrelic_rpm-8.11.0 lib/new_relic/agent/instrumentation/padrino/chain.rb