From 4d1c74efa7168c2e318baf1228dffef2b0f42482 Mon Sep 17 00:00:00 2001 From: Pascal Zumkehr Date: Thu, 10 Dec 2020 12:02:55 +0100 Subject: [PATCH] Postpone loading to railtie, fixes #27 --- lib/delayed_cron_job.rb | 12 +++++++++--- .../backend/active_record/railtie.rb | 14 ++++++++++++++ lib/delayed_cron_job/version.rb | 2 +- 3 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 lib/delayed_cron_job/backend/active_record/railtie.rb diff --git a/lib/delayed_cron_job.rb b/lib/delayed_cron_job.rb index b9f0d1a..1ee8949 100644 --- a/lib/delayed_cron_job.rb +++ b/lib/delayed_cron_job.rb @@ -24,9 +24,15 @@ module DelayedCronJob end if defined?(Delayed::Backend::ActiveRecord) - Delayed::Backend::ActiveRecord::Job.send(:include, DelayedCronJob::Backend::UpdatableCron) - if Delayed::Backend::ActiveRecord::Job.respond_to?(:attr_accessible) - Delayed::Backend::ActiveRecord::Job.attr_accessible(:cron) + if defined?(Rails::Railtie) + # Postpone initialization to railtie for correct order + require 'delayed_cron_job/backend/active_record/railtie' + else + # Do the same as in the railtie + Delayed::Backend::ActiveRecord::Job.send(:include, DelayedCronJob::Backend::UpdatableCron) + if Delayed::Backend::ActiveRecord::Job.respond_to?(:attr_accessible) + Delayed::Backend::ActiveRecord::Job.attr_accessible(:cron) + end end end diff --git a/lib/delayed_cron_job/backend/active_record/railtie.rb b/lib/delayed_cron_job/backend/active_record/railtie.rb new file mode 100644 index 0000000..8f09964 --- /dev/null +++ b/lib/delayed_cron_job/backend/active_record/railtie.rb @@ -0,0 +1,14 @@ +module DelayedCronJob + module Backend + module ActiveRecord + class Railtie < ::Rails::Railtie + config.after_initialize do + Delayed::Backend::ActiveRecord::Job.send(:include, DelayedCronJob::Backend::UpdatableCron) + if Delayed::Backend::ActiveRecord::Job.respond_to?(:attr_accessible) + Delayed::Backend::ActiveRecord::Job.attr_accessible(:cron) + end + end + end + end + end +end diff --git a/lib/delayed_cron_job/version.rb b/lib/delayed_cron_job/version.rb index cbf20ce..dedd073 100644 --- a/lib/delayed_cron_job/version.rb +++ b/lib/delayed_cron_job/version.rb @@ -1,3 +1,3 @@ module DelayedCronJob - VERSION = '0.7.3' + VERSION = '0.7.4' end