Sha256: 10693f7bc809628ddfdb9b76bce83b6fe63ed5d3f61bccfc46e51c19cbbb4b16
Contents?: true
Size: 870 Bytes
Versions: 2
Compression:
Stored size: 870 Bytes
Contents
# frozen_string_literal: true require 'sidekiq' module SidekiqSimpleDelay # Worker that handles the simple_delayed functionality for ActionMailers class SimpleDelayedMailer include Sidekiq::Worker def perform(args) target_klass = Object.const_get(args.fetch('target_klass')) method_name = args['m'] method_args = args['args'] msg = target_klass.__send__(method_name, *method_args) # The email method can return nil, which causes ActionMailer to return # an undeliverable empty message. raise "#{target.name}##{method_name} returned an undeliverable mail object" unless msg deliver(msg) 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 end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
sidekiq_simple_delay-0.2.1 | lib/sidekiq_simple_delay/delayed_mailer.rb |
sidekiq_simple_delay-0.2.0 | lib/sidekiq_simple_delay/delayed_mailer.rb |