Class: QueryOwl::Middleware

Inherits:
Object
  • Object
show all
Defined in:
lib/query_owl/middleware.rb

Instance Method Summary collapse

Constructor Details

#initialize(app) ⇒ Middleware

Returns a new instance of Middleware.



3
4
5
# File 'lib/query_owl/middleware.rb', line 3

def initialize(app)
  @app = app
end

Instance Method Details

#call(env) ⇒ Object



7
8
9
10
11
12
13
14
15
16
# File 'lib/query_owl/middleware.rb', line 7

def call(env)
  return @app.call(env) unless QueryOwl.config.enabled

  QueryTracker.start!
  @app.call(env)
ensure
  queries = QueryTracker.stop!
  events  = Detector.detect_n_plus_one(queries) + Detector.detect_slow_queries(queries)
  Logger.log_events(events)
end