Module: Gossiper::Concerns::Models::Notification

Extended by:
ActiveSupport::Concern
Included in:
Notification
Defined in:
lib/gossiper/concerns/models/notification.rb

Defined Under Namespace

Modules: ClassMethods

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



23
24
25
26
27
28
29
30
# File 'lib/gossiper/concerns/models/notification.rb', line 23

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

#dataObject



19
20
21
# File 'lib/gossiper/concerns/models/notification.rb', line 19

def data
  read_attribute(:data).presence || {}
end

#mailObject



38
39
40
# File 'lib/gossiper/concerns/models/notification.rb', line 38

def mail
  Gossiper::Mailer.mail_for(self)
end

#statusObject



15
16
17
# File 'lib/gossiper/concerns/models/notification.rb', line 15

def status
  read_attribute(:status).presence || STATUSES.first
end