module Newsletterable::Model

Public Instance Methods

email() click to toggle source
# File lib/newsletterable/model.rb, line 12
def email
        subscribable.nil? ? self.old_email : subscribable.email
end
enqueue_subscription() click to toggle source
# File lib/newsletterable/model.rb, line 16
def enqueue_subscription
        worker = Newsletterable.configuration.worker
        case worker
        when Symbol, String
                # Get worker from method in model
                self.send(worker)
        else
                # Get worker from lambda function
                if worker.respond_to?(:call)
                        worker.call(self.id)
                # worker is already a Worker class, call perform_async
                # TODO: should we require perform_async, make it configurable or make this an adapter
                elsif worker.respond_to?(:perform_async)
                        worker.perform_async(self.id)
                else
                        raise ConfigurationError, "config.worker is nil or invalid."
                end
        end
end