Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions lib/devise/async.rb
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
require 'devise'
require 'devise/async/model'
require 'devise/async/version'
require 'action_mailer'

module Devise
module Async
# Defines the enabled configuration that if set to false the emails will be sent synchronously
mattr_accessor :enabled
@@enabled = true

# Defines the queue in which the background job will be enqueued.
mattr_accessor :queue
@@queue = ActionMailer::Base.deliver_later_queue_name

# Allow configuring Devise::Async with a block
#
# Example:
Expand Down
4 changes: 3 additions & 1 deletion lib/devise/async/model.rb
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,9 @@ def devise_pending_notifications
private

def deliver_mail_later(notification, model, args)
devise_mailer.send(notification, model, *args).deliver_later
devise_mailer.
send(notification, model, *args).
deliver_later(queue: Devise::Async.queue)
end
end
end
Expand Down
8 changes: 8 additions & 0 deletions spec/devise/async_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,12 @@
expect(described_class.enabled).to eq(false)
described_class.enabled = initial_enabled
end

it 'stores queue config' do
initial_queue = described_class.queue

described_class.queue = :critical
expect(described_class.queue).to eq(:critical)
described_class.queue = initial_queue
end
end