Class: UserNotifier::Base
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- UserNotifier::Base
- Defined in:
- app/models/user_notifier/base.rb
Class Method Summary collapse
- .is_unique?(template_name, filter) ⇒ Boolean
- .notify(template_name, user, source = nil, params = {}) ⇒ Object
- .notify_once(template_name, user, source = nil, params = {}) ⇒ Object
- .user_association_name ⇒ Object
Instance Method Summary collapse
Class Method Details
.is_unique?(template_name, filter) ⇒ Boolean
36 37 38 |
# File 'app/models/user_notifier/base.rb', line 36 def self.is_unique?(template_name, filter) filter.nil? || self.where(filter.merge(template_name: template_name)).empty? end |
.notify(template_name, user, source = nil, params = {}) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 |
# File 'app/models/user_notifier/base.rb', line 9 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 = {}) ⇒ Object
5 6 7 |
# File 'app/models/user_notifier/base.rb', line 5 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 |
.user_association_name ⇒ Object
30 31 32 |
# File 'app/models/user_notifier/base.rb', line 30 def self.user_association_name UserNotifier.user_class_name.downcase.to_sym end |
Instance Method Details
#deliver ⇒ Object
21 22 23 |
# File 'app/models/user_notifier/base.rb', line 21 def deliver deliver! unless self.sent_at.present? end |
#deliver! ⇒ Object
25 26 27 |
# File 'app/models/user_notifier/base.rb', line 25 def deliver! UserNotifier::EmailWorker.perform_async(self.class.name.to_s, self.id) end |