From 45af6613ff2e10299d56700a491cdf20115aff2f Mon Sep 17 00:00:00 2001 From: Donal McBreen Date: Wed, 1 Nov 2023 12:11:44 +0000 Subject: [PATCH] Add load hooks for SolidQueue::Record We can use these to point to a different database: E.g: ``` ActiveSupport.on_load(:solid_queue_record) do connects_to database: { writing: :solid_queue } end ``` --- app/models/solid_queue/record.rb | 2 ++ test/dummy/config/initializers/solid_queue_record.rb | 6 ++++++ test/unit/hooks_test.rb | 7 +++++++ 3 files changed, 15 insertions(+) create mode 100644 test/dummy/config/initializers/solid_queue_record.rb create mode 100644 test/unit/hooks_test.rb diff --git a/app/models/solid_queue/record.rb b/app/models/solid_queue/record.rb index efee954c..8f13299b 100644 --- a/app/models/solid_queue/record.rb +++ b/app/models/solid_queue/record.rb @@ -3,3 +3,5 @@ class Record < ActiveRecord::Base self.abstract_class = true end end + +ActiveSupport.run_load_hooks :solid_queue_record, SolidQueue::Record diff --git a/test/dummy/config/initializers/solid_queue_record.rb b/test/dummy/config/initializers/solid_queue_record.rb new file mode 100644 index 00000000..72e237fe --- /dev/null +++ b/test/dummy/config/initializers/solid_queue_record.rb @@ -0,0 +1,6 @@ +Rails.application.config.x.solid_queue_record_hook_ran = false + +ActiveSupport.on_load(:solid_queue_record) do + raise "Expected to run on SolidQueue::Record, got #{self.inspect}" unless self == SolidQueue::Record + Rails.application.config.x.solid_queue_record_hook_ran = true +end diff --git a/test/unit/hooks_test.rb b/test/unit/hooks_test.rb new file mode 100644 index 00000000..f6db1718 --- /dev/null +++ b/test/unit/hooks_test.rb @@ -0,0 +1,7 @@ +require "test_helper" + +class HooksTest < ActiveSupport::TestCase + test "solid_queue_record hook ran" do + assert Rails.application.config.x.solid_queue_record_hook_ran + end +end