class Rack::Middleware::QueryTracer

Constants

VERSION

Public Class Methods

new(app, logger = ::Arproxy.logger) click to toggle source
# File lib/rack/middleware/query_tracer.rb, line 7
def initialize(app, logger = ::Arproxy.logger)
  @app = app
  @logger = logger

  ::Arproxy.configure do |config|
    config.adapter = ActiveRecord::Base.connection.adapter_name.downcase # "mysql2" # A DB Apdapter name which is used in your database.yml
    config.use ProxyImpl, @logger
  end
end

Public Instance Methods

call(env) click to toggle source
# File lib/rack/middleware/query_tracer.rb, line 17
def call(env)
  request = ActionDispatch::Request.new(env)
  @logger.tagged("QueryTracing") do
    ::Arproxy.enable!
    begin
      if request.filtered_path.blank?
        @app.call(env)
      else
        @logger.tagged(request.filtered_path) do
          @app.call(env)
        end
      end
    ensure
      ::Arproxy.disable!
    end
  end
end