openstreetmap-website/config/initializers/mail_delivery_job.rb
Tom Hughes 21d52f2d3f 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
2022-07-23 12:12:29 +01:00

13 lines
394 B
Ruby

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)