lib/sidekiq/extensions/action_mailer.rb in sidekiq-5.2.10 vs lib/sidekiq/extensions/action_mailer.rb in sidekiq-6.0.0.pre1

- old
+ new

@@ -1,8 +1,9 @@ # frozen_string_literal: true -require 'sidekiq/extensions/generic_proxy' +require "sidekiq/extensions/generic_proxy" + module Sidekiq module Extensions ## # Adds 'delay', 'delay_for' and `delay_until` methods to ActionMailer to offload arbitrary email # delivery to Sidekiq. Example: @@ -17,41 +18,30 @@ (target, method_name, args) = YAML.load(yml) msg = target.public_send(method_name, *args) # The email method can return nil, which causes ActionMailer to return # an undeliverable empty message. if msg - deliver(msg) + msg.deliver_now else raise "#{target.name}##{method_name} returned an undeliverable mail object" end end - - private - - def deliver(msg) - if msg.respond_to?(:deliver_now) - # Rails 4.2/5.0 - msg.deliver_now - else - # Rails 3.2/4.0/4.1 - msg.deliver - end - end end module ActionMailer - def sidekiq_delay(options={}) + def sidekiq_delay(options = {}) Proxy.new(DelayedMailer, self, options) end - def sidekiq_delay_for(interval, options={}) - Proxy.new(DelayedMailer, self, options.merge('at' => Time.now.to_f + interval.to_f)) + + def sidekiq_delay_for(interval, options = {}) + Proxy.new(DelayedMailer, self, options.merge("at" => Time.now.to_f + interval.to_f)) end - def sidekiq_delay_until(timestamp, options={}) - Proxy.new(DelayedMailer, self, options.merge('at' => timestamp.to_f)) + + def sidekiq_delay_until(timestamp, options = {}) + Proxy.new(DelayedMailer, self, options.merge("at" => timestamp.to_f)) end alias_method :delay, :sidekiq_delay alias_method :delay_for, :sidekiq_delay_for alias_method :delay_until, :sidekiq_delay_until end - end end