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