Module: Gossiper::Concerns::Models::Notification
- Extended by:
- ActiveSupport::Concern
- Included in:
- Notification
- Defined in:
- lib/gossiper/concerns/models/notification.rb
Constant Summary
collapse
- STATUSES =
%w(pending delivered)
Instance Method Summary
collapse
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args, &block) ⇒ Object
42
43
44
45
46
47
48
49
|
# File 'lib/gossiper/concerns/models/notification.rb', line 42
def method_missing(method, *args, &block)
STATUSES.each do |status|
if method.to_s == "#{status}?"
return self.status == status
end
end
super(method, *args, &block)
end
|
Instance Method Details
#config ⇒ Object
38
39
40
|
# File 'lib/gossiper/concerns/models/notification.rb', line 38
def config
ClassResolver.new.resolve(kind).constantize.new(self)
end
|
#data ⇒ Object
19
20
21
|
# File 'lib/gossiper/concerns/models/notification.rb', line 19
def data
read_attribute(:data).presence || {}
end
|
#deliver ⇒ Object
23
24
25
26
|
# File 'lib/gossiper/concerns/models/notification.rb', line 23
def deliver
mail.deliver
update_delivered_at!
end
|
#deliver! ⇒ Object
28
29
30
31
|
# File 'lib/gossiper/concerns/models/notification.rb', line 28
def deliver!
mail.deliver!
update_delivered_at!
end
|
#kind=(value) ⇒ Object
33
34
35
36
|
# File 'lib/gossiper/concerns/models/notification.rb', line 33
def kind=(value)
value = value.present? ? value.parameterize.underscore : nil
write_attribute(:kind, value)
end
|
#status ⇒ Object
15
16
17
|
# File 'lib/gossiper/concerns/models/notification.rb', line 15
def status
read_attribute(:status).presence || STATUSES.first
end
|