Sha256: 7833226491ccf2293e0085698cdfde28c0f8987627c502f1a966367c0c11f470
Contents?: true
Size: 1.44 KB
Versions: 1
Compression:
Stored size: 1.44 KB
Contents
module Notifiable class Notification < ActiveRecord::Base serialize :params has_many :notification_statuses, :class_name => 'Notifiable::NotificationStatus', :dependent => :destroy belongs_to :app, :class_name => 'Notifiable::App' validates_presence_of :app def batch yield(self) close end def add_notifiable(notifiable) notifiable.device_tokens.each do |d| self.add_device_token(d) end end def add_device_token(d) provider = d.provider.to_sym if notifiers[provider].nil? clazz = Notifiable.notifier_classes[provider] raise "Notifier #{provider} not configured" unless clazz notifier = clazz.new(Rails.env, self) self.app.configure provider, notifier notifiers[provider] = notifier end notifiers[provider].send_notification(d) end def send_params @send_params ||= (self.params ? self.params : {}).merge({:notification_id => self.id}) end private def notifiers @notifiers ||= {} end def close notifiers.each_value {|n| n.close} @notifiers = nil summarise end def summarise self.sent_count = self.notification_statuses.count self.gateway_accepted_count = self.notification_statuses.where(:status => 0).count self.save end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
notifiable-rails-0.18.0 | lib/notifiable/notification.rb |