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
13 lines
394 B
Ruby
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)
|