From 0a33e4fff6fd30bb0150563a286777418f6bc7d3 Mon Sep 17 00:00:00 2001 From: Duncan Brown Date: Mon, 11 May 2020 16:58:06 +0100 Subject: [PATCH] Use a railtie for Audited::Sweeper's ActiveSupport.on_load hook This prevents loading ActionController::API before Rails itself has loaded it. --- lib/audited.rb | 1 + lib/audited/railtie.rb | 14 ++++++++++++++ lib/audited/sweeper.rb | 9 --------- spec/audited/sweeper_spec.rb | 1 + 4 files changed, 16 insertions(+), 9 deletions(-) create mode 100644 lib/audited/railtie.rb diff --git a/lib/audited.rb b/lib/audited.rb index 36baff418..8738b17af 100644 --- a/lib/audited.rb +++ b/lib/audited.rb @@ -30,3 +30,4 @@ def config ::ActiveRecord::Base.send :include, Audited::Auditor require 'audited/sweeper' +require 'audited/railtie' diff --git a/lib/audited/railtie.rb b/lib/audited/railtie.rb new file mode 100644 index 000000000..7752590e7 --- /dev/null +++ b/lib/audited/railtie.rb @@ -0,0 +1,14 @@ +module Audited + class Railtie < Rails::Railtie + initializer "audited.sweeper" do + ActiveSupport.on_load(:action_controller) do + if defined?(ActionController::Base) + ActionController::Base.around_action Audited::Sweeper.new + end + if defined?(ActionController::API) + ActionController::API.around_action Audited::Sweeper.new + end + end + end + end +end diff --git a/lib/audited/sweeper.rb b/lib/audited/sweeper.rb index aca68e36f..47009e15c 100644 --- a/lib/audited/sweeper.rb +++ b/lib/audited/sweeper.rb @@ -38,12 +38,3 @@ def controller=(value) end end end - -ActiveSupport.on_load(:action_controller) do - if defined?(ActionController::Base) - ActionController::Base.around_action Audited::Sweeper.new - end - if defined?(ActionController::API) - ActionController::API.around_action Audited::Sweeper.new - end -end diff --git a/spec/audited/sweeper_spec.rb b/spec/audited/sweeper_spec.rb index 8bce0bccf..4a0916c76 100644 --- a/spec/audited/sweeper_spec.rb +++ b/spec/audited/sweeper_spec.rb @@ -30,6 +30,7 @@ def populate_user; end render_views before do + Audited::Railtie.initializers.each(&:run) Audited.current_user_method = :current_user end