class ScoutApm::Instruments::RailsRouter

Attributes

context[R]

Public Class Methods

new(context) click to toggle source
# File lib/scout_apm/instruments/rails_router.rb, line 6
def initialize(context)
  @context = context
  @installed = false
end

Public Instance Methods

call_with_scout_instruments(*args) click to toggle source
# File lib/scout_apm/instruments/rails_router.rb, line 24
def call_with_scout_instruments(*args)
  req = ScoutApm::RequestManager.lookup
  req.start_layer(ScoutApm::Layer.new("Router", "Rails"))

  begin
    call_without_scout_instruments(*args)
  ensure
    req.stop_layer
  end
end
install() click to toggle source
# File lib/scout_apm/instruments/rails_router.rb, line 19
def install
  if defined?(ActionDispatch) && defined?(ActionDispatch::Routing) && defined?(ActionDispatch::Routing::RouteSet)
    @installed = true

    ActionDispatch::Routing::RouteSet.class_eval do
      def call_with_scout_instruments(*args)
        req = ScoutApm::RequestManager.lookup
        req.start_layer(ScoutApm::Layer.new("Router", "Rails"))

        begin
          call_without_scout_instruments(*args)
        ensure
          req.stop_layer
        end
      end

      alias_method :call_without_scout_instruments, :call
      alias_method :call, :call_with_scout_instruments
    end
  end
end
installed?() click to toggle source
# File lib/scout_apm/instruments/rails_router.rb, line 15
def installed?
  @installed
end
logger() click to toggle source
# File lib/scout_apm/instruments/rails_router.rb, line 11
def logger
  context.logger
end