class Airbrake::Rails::App
App
is a wrapper around Rails.application and Rails::Engine.
@since v9.0.3 @api private
Constants
- Route
Public Instance Methods
routes()
click to toggle source
# File lib/airbrake/rails/app.rb, line 10 def routes @routes ||= app_routes.merge(engine_routes).flat_map do |(engine_name, routes)| routes.map { |rails_route| build_route(engine_name, rails_route) } end end
Private Instance Methods
app_routes()
click to toggle source
# File lib/airbrake/rails/app.rb, line 18 def app_routes # Engine name is nil because this is default (non-engine) routes. { nil => ::Rails.application.routes.routes.routes } end
build_route(engine_name, rails_route)
click to toggle source
# File lib/airbrake/rails/app.rb, line 31 def build_route(engine_name, rails_route) engine_prefix = engine_name engine_prefix += '#' if engine_prefix Route.new( "#{engine_prefix}#{rails_route.path.spec}", rails_route.defaults[:controller], rails_route.defaults[:action] ) end
engine_routes()
click to toggle source
# File lib/airbrake/rails/app.rb, line 23 def engine_routes ::Rails::Engine.subclasses.flat_map.with_object({}) do |engine, hash| next if (eng_routes = engine.routes.routes.routes).none? hash[engine.engine_name] = eng_routes end end