class UserNotifier::Base

Public Class Methods

notify(template_name, user, source = nil, params = {}) click to toggle source
# File lib/user_notifier/models/base.rb, line 10
def self.notify(template_name, user, source = nil, params = {})
  source ||= user
  create!({
    template_name: template_name,
    locale: I18n.locale,
    from_email: UserNotifier.from_email,
    from_name: UserNotifier.from_name,
    source: source,
    self.user_association_name => user
  }.merge(params))
end
notify_once(template_name, user, source = nil, params = {}) click to toggle source
# File lib/user_notifier/models/base.rb, line 6
def self.notify_once(template_name, user, source = nil, params = {})
  notify(template_name, user, source, params) if is_unique?(template_name, {self.user_association_name => user})
end

Private Class Methods

is_unique?(template_name, filter) click to toggle source
# File lib/user_notifier/models/base.rb, line 45
def self.is_unique?(template_name, filter)
  filter.nil? || self.where(filter.merge(template_name: template_name)).empty?
end
user_association_name() click to toggle source
# File lib/user_notifier/models/base.rb, line 39
def self.user_association_name
  UserNotifier.user_class_name.downcase.to_sym
end

Public Instance Methods

deliver() click to toggle source
# File lib/user_notifier/models/base.rb, line 22
def deliver
  deliver! unless self.sent_at.present?
end
deliver!() click to toggle source
# File lib/user_notifier/models/base.rb, line 26
def deliver!
  UserNotifier::EmailWorker.perform_at((self.try(:deliver_at) || Time.now), self.class.name.to_s, self.id)
end
deliver_without_worker() click to toggle source
# File lib/user_notifier/models/base.rb, line 30
def deliver_without_worker
  mailer.notify(self).deliver
end
mailer() click to toggle source
# File lib/user_notifier/models/base.rb, line 34
def mailer
  UserNotifier::Mailer
end