Sha256: 5965ebb695c9c7e048c06c302a32f1da5b169ed56a13c8df5b4fff7c1a919efd
Contents?: true
Size: 1.1 KB
Versions: 3
Compression:
Stored size: 1.1 KB
Contents
module Gossiper module Concerns module Models module Notification extend ActiveSupport::Concern STATUSES = %w(pending delivered) included do include Gossiper::Concerns::Models::EmailSettings serialize :data, JSON belongs_to :user, polymorphic: true end def status read_attribute(:status).presence || STATUSES.first end def data read_attribute(:data).presence || {} end 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 module ClassMethods def require_user include Gossiper::Concerns::Models::UserNotification end end def mail Gossiper::Mailer.mail_for(self) end private def update_delivered_at! self.delivered_at = Time.now save! end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
gossiper-0.5.2 | lib/gossiper/concerns/models/notification.rb |
gossiper-0.5.1 | lib/gossiper/concerns/models/notification.rb |
gossiper-0.5.0 | lib/gossiper/concerns/models/notification.rb |