Sha256: ca33e5147d48a34d0703e41919bde39f6eb9e159d19f80ebe6263b0d06700365

Contents?: true

Size: 1.72 KB

Versions: 2

Compression:

Stored size: 1.72 KB

Contents

# encoding: utf-8
# 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::Agent::Instrumentation
  module Sinatra
    module Chain
      def self.instrument!
        ::Sinatra::Base.class_eval do
          include ::NewRelic::Agent::Instrumentation::Sinatra::Tracer

          def dispatch_with_newrelic
            dispatch_with_tracing { dispatch_without_newrelic }
          end
          alias dispatch_without_newrelic dispatch!
          alias dispatch! dispatch_with_newrelic

          def process_route_with_newrelic(*args, &block)
            process_route_with_tracing(*args) do
              process_route_without_newrelic(*args, &block)
            end
          end
          alias process_route_without_newrelic process_route
          alias process_route process_route_with_newrelic

          def route_eval_with_newrelic(*args, &block)
            route_eval_with_tracing(*args) do
              route_eval_without_newrelic(*args, &block)
            end
          end
          alias route_eval_without_newrelic route_eval
          alias route_eval route_eval_with_newrelic
        end
      end
    end

    module Build
      module Chain
        def self.instrument!
          ::Sinatra::Base.class_eval do
            class << self
              def build_with_newrelic(*args, &block)
                build_with_tracing(*args) do
                  build_without_newrelic(*args, &block)
                end
              end
              alias build_without_newrelic build
              alias build build_with_newrelic
            end
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
newrelic_rpm-8.10.1 lib/new_relic/agent/instrumentation/sinatra/chain.rb
newrelic_rpm-8.10.0 lib/new_relic/agent/instrumentation/sinatra/chain.rb