# frozen_string_literal: true ## # This code is inspired by request_store gem by Steve Klabnik: # # https://github.com/steveklabnik/request_store/ # # See LICENSE.txt in the current directory for the license. module PlainApm module Extensions module Context class Railtie < Rails::Railtie initializer(:plain_apm_thread_context, after: :plain_apm_agent_start) do |app| next if !PlainApm.agent.enabled? ::ActiveSupport.on_load(:active_job, run_once: true) do |klass| klass.prepend(PlainApm::Extensions::Context::ActiveJob) end if defined?(ActionDispatch::RequestId) app.config.middleware.insert_after ActionDispatch::RequestId, PlainApm::Extensions::Context::Rack else app.config.middleware.insert_after Rack::MethodOverride, PlainApm::Extensions::Context::Rack end end end end end end