Sha256: 5ddb636646abda8e67a48229e67f38f6056c927da9b2543b9c42a08e04f00fa3
Contents?: true
Size: 1.22 KB
Versions: 2
Compression:
Stored size: 1.22 KB
Contents
module Airbrake module Rails # ActionControllerRouteSubscriber sends route stat information, including # performance data. # # @since v8.0.0 class ActionControllerRouteSubscriber def initialize @all_routes = nil end def call(*args) # We cannot move this to #initialize because Rails initializes routes # after hooks. @all_routes ||= find_all_routes event = ActiveSupport::Notifications::Event.new(*args) payload = event.payload Thread.current[:airbrake_rails_route] = find_route(payload[:params]) Thread.current[:airbrake_rails_method] = payload[:method] end private def find_route(params) @all_routes.each do |r| if r.defaults[:controller] == params['controller'] && r.defaults[:action] == params['action'] return r.path.spec.to_s end end end # Finds all routes that the app supports, including engines. def find_all_routes routes = [*::Rails.application.routes.routes.routes] ::Rails::Engine.subclasses.each do |engine| routes.push(*engine.routes.routes.routes) end routes end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
airbrake-8.1.1 | lib/airbrake/rails/action_controller_route_subscriber.rb |
airbrake-8.1.0 | lib/airbrake/rails/action_controller_route_subscriber.rb |