Sha256: 01f2582645209c9848fbbbe71ea710895b68c9886ac563bd92a354154b0a2e6f

Contents?: true

Size: 773 Bytes

Versions: 1

Compression:

Stored size: 773 Bytes

Contents

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

        # 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.
        def perform(method, resource_class, resource_id, opts)
          resource = resource_class.constantize.to_adapter.get!(resource_id)
          opts.symbolize_keys!
          mailer_class.send(method, resource, opts).deliver
        end

        private

        def mailer_class
          @mailer_class ||= Devise.mailer
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
devise-async-0.7.0 lib/devise/async/backend/base.rb