Module: OneApm::Agent::Instrumentation::Sinatra::ClassMethods

Defined in:
lib/one_apm/inst/framework/sinatra.rb

Instance Method Summary collapse

Instance Method Details

#build_with_oneapm(*args, &block) ⇒ Object



92
93
94
95
96
97
98
99
# File 'lib/one_apm/inst/framework/sinatra.rb', line 92

def build_with_oneapm(*args, &block)
  unless OneApm::Manager.config[:disable_sinatra_auto_middleware]
    oneapm_middlewares.each do |middleware_class|
      try_to_use(self, middleware_class)
    end
  end
  build_without_oneapm(*args, &block)
end

#oneapm_middlewaresObject



84
85
86
87
88
89
90
# File 'lib/one_apm/inst/framework/sinatra.rb', line 84

def oneapm_middlewares
  middlewares = [OneApm::Rack::BrowserMonitoring]
  if OneApm::Rack::MiddlewareHooks.needed?
    middlewares << OneApm::Rack::MiddlewareHooks
  end
  middlewares
end

#try_to_use(app, clazz) ⇒ Object



101
102
103
104
# File 'lib/one_apm/inst/framework/sinatra.rb', line 101

def try_to_use(app, clazz)
  has_middleware = app.middleware.any? { |info| info[0] == clazz }
  app.use(clazz) unless has_middleware
end