class Determinator::Tracking::Rack::Middleware
Public Class Methods
new(app)
click to toggle source
# File lib/determinator/tracking/rack/middleware.rb, line 7 def initialize(app) @app = app end
Public Instance Methods
call(env)
click to toggle source
# File lib/determinator/tracking/rack/middleware.rb, line 11 def call(env) Determinator::Tracking.start!(:rack) status, headers, response = @app.call(env) [status, headers, response] rescue error = true raise ensure Determinator::Tracking.finish!( status: status, error: !!error, endpoint: extract_endpoint(env) ) end
Private Instance Methods
extract_endpoint(env)
click to toggle source
# File lib/determinator/tracking/rack/middleware.rb, line 28 def extract_endpoint(env) parts = if params = env['action_dispatch.request.path_parameters'] [env['REQUEST_METHOD'], [params[:controller], params[:action]].join('#')] elsif env['sinatra.route'] [env['sinatra.route']] else [env['REQUEST_METHOD']] end Determinator::Tracking.collect_endpoint_info(parts) rescue env['PATH_INFO'] end