Monkey patch MailDeliveryJob to work with delayed_job under ruby 3
The delayed_job gem does not currently perserve keyword arguments properly leading to errors when running under ruby 3 and try to run a job that requires them. This affects our deferred mail deliveries so we monkey patch the mail delivery job to unpack the hash from the normal arguments and use it to provide the expected keyword arguments. https://github.com/collectiveidea/delayed_job/issues/1134
This commit is contained in:
parent
273cb9e00a
commit
21d52f2d3f
1 changed files with 13 additions and 0 deletions
13
config/initializers/mail_delivery_job.rb
Normal file
13
config/initializers/mail_delivery_job.rb
Normal file
|
@ -0,0 +1,13 @@
|
|||
module OpenStreetMap
|
||||
module ActionMailer
|
||||
module MailDeliveryJob
|
||||
def perform(mailer, mail_method, delivery_method, *args, **kwargs)
|
||||
kwargs = args.pop if kwargs.empty? && args.last.is_a?(Hash)
|
||||
|
||||
super(mailer, mail_method, delivery_method, *args, **kwargs)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
ActionMailer::MailDeliveryJob.prepend(OpenStreetMap::ActionMailer::MailDeliveryJob)
|
Loading…
Add table
Add a link
Reference in a new issue