module Mmtrix::Agent::Instrumentation::Sinatra::ClassMethods

Public Instance Methods

build_with_mmtrix(*args, &block) click to toggle source
# File lib/mmtrix/agent/instrumentation/sinatra.rb, line 95
def build_with_mmtrix(*args, &block)
  unless Mmtrix::Agent.config[:disable_sinatra_auto_middleware]
    mmtrix_middlewares.each do |middleware_class|
      try_to_use(self, middleware_class)
    end
  end
  build_without_mmtrix(*args, &block)
end
mmtrix_middlewares() click to toggle source
# File lib/mmtrix/agent/instrumentation/sinatra.rb, line 87
def mmtrix_middlewares
  middlewares = [Mmtrix::Rack::BrowserMonitoring]
  if Mmtrix::Rack::AgentHooks.needed?
    middlewares << Mmtrix::Rack::AgentHooks
  end
  middlewares
end
try_to_use(app, clazz) click to toggle source
# File lib/mmtrix/agent/instrumentation/sinatra.rb, line 104
def try_to_use(app, clazz)
  has_middleware = app.middleware.any? { |info| info[0] == clazz }
  app.use(clazz) unless has_middleware
end