Class: Devise::Async::Backend::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/devise/async/backend/base.rb

Direct Known Subclasses

DelayedJob, QueueClassic, Resque, Sidekiq, Torquebox

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.enqueue(*args) ⇒ Object

Raises:

  • (NotImplementedError)


5
6
7
# File 'lib/devise/async/backend/base.rb', line 5

def self.enqueue(*args)
  raise NotImplementedError, "Any DeviseAssync::Backend subclass should implement `self.enqueue`."
end

Instance Method Details

#perform(method, resource_class, resource_id, *args) ⇒ Object

Loads the resource record and sends the email.

It uses ‘orm_adapter` API to fetch the record in order to enforce compatibility among diferent ORMs.



13
14
15
16
17
# File 'lib/devise/async/backend/base.rb', line 13

def perform(method, resource_class, resource_id, *args)
  resource = resource_class.constantize.to_adapter.get!(resource_id)
  args[-1] = args.last.symbolize_keys if args.last.is_a?(Hash)
  mailer_class(resource).send(method, resource, *args).deliver
end