class Airbrake::Rack::RouteFilter
Adds route slugs to context/route. @since v7.5.0
Attributes
weight[R]
Public Class Methods
new()
click to toggle source
# File lib/airbrake/rack/route_filter.rb, line 12 def initialize @weight = 100 end
Public Instance Methods
call(notice)
click to toggle source
# File lib/airbrake/rack/route_filter.rb, line 16 def call(notice) return unless (request = notice.stash[:rack_request]) notice[:context][:route] = if action_dispatch_request?(request) rails_route(request) elsif sinatra_request?(request) sinatra_route(request) end end
Private Instance Methods
action_dispatch_request?(request)
click to toggle source
# File lib/airbrake/rack/route_filter.rb, line 41 def action_dispatch_request?(request) defined?(ActionDispatch::Request) && request.instance_of?(ActionDispatch::Request) end
rails_route(request)
click to toggle source
# File lib/airbrake/rack/route_filter.rb, line 29 def rails_route(request) return unless (route = Airbrake::Rails::App.recognize_route(request)) route.path end
sinatra_request?(request)
click to toggle source
# File lib/airbrake/rack/route_filter.rb, line 46 def sinatra_request?(request) defined?(Sinatra::Request) && request.instance_of?(Sinatra::Request) end
sinatra_route(request)
click to toggle source
# File lib/airbrake/rack/route_filter.rb, line 35 def sinatra_route(request) return unless (route = request.env['sinatra.route']) route.split.drop(1).join(' ') end