Class: SidekiqSimpleDelay::SimpleDelayedMailer

Inherits:
Object
  • Object
show all
Includes:
Sidekiq::Worker
Defined in:
lib/sidekiq_simple_delay/delayed_mailer.rb

Overview

Worker that handles the simple_delayed functionality for ActionMailers

Instance Method Summary collapse

Instance Method Details

#perform(args) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/sidekiq_simple_delay/delayed_mailer.rb', line 10

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