Class: ActivityNotification::ORM::ActiveRecord::Notification
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- ActivityNotification::ORM::ActiveRecord::Notification
- Includes:
- Common, NotificationApi, Renderable
- Defined in:
- lib/activity_notification/orm/active_record/notification.rb
Overview
Notification model implementation generated by ActivityNotification.
Class Method Summary collapse
-
.earlier_than ⇒ ActiveRecord_AssociationRelation<Notificaion>, Mongoid::Criteria<Notificaion>
Selects filtered notifications earlier than specified time.
-
.filtered_by_group ⇒ ActiveRecord_AssociationRelation<Notificaion>
Selects filtered notifications by group instance.
-
.filtered_by_instance ⇒ ActiveRecord_AssociationRelation<Notificaion>
Selects filtered notifications by notifiable instance.
-
.filtered_by_target ⇒ ActiveRecord_AssociationRelation<Notificaion>
Selects filtered notifications by target instance.
-
.group_members_of_owner_ids_only ⇒ ActiveRecord_AssociationRelation<Notificaion>
Selects group member notifications with specified group owner ids.
-
.group_members_only ⇒ ActiveRecord_AssociationRelation<Notificaion>
Selects group member notifications only.
-
.group_owners_only ⇒ ActiveRecord_AssociationRelation<Notificaion>
Selects group owner notifications only.
-
.later_than ⇒ ActiveRecord_AssociationRelation<Notificaion>, Mongoid::Criteria<Notificaion>
Selects filtered notifications later than specified time.
-
.opened_index_group_members_only ⇒ ActiveRecord_AssociationRelation<Notificaion>
Selects group member notifications in opened_index.
-
.opened_only ⇒ ActiveRecord_AssociationRelation<Notificaion>
Selects opened notifications only with limit.
-
.opened_only! ⇒ ActiveRecord_AssociationRelation<Notificaion>
Selects opened notifications only without limit.
-
.raise_delete_restriction_error(error_text) ⇒ void
Raise DeleteRestrictionError for notifications.
-
.unopened_index_group_members_only ⇒ ActiveRecord_AssociationRelation<Notificaion>
Selects group member notifications in unopened_index.
-
.unopened_only ⇒ ActiveRecord_AssociationRelation<Notificaion>
Selects unopened notifications only.
-
.within_expiration_only ⇒ ActiveRecord_AssociationRelation<Notificaion>
Selects notifications within expiration.
Instance Method Summary collapse
-
#group ⇒ Object
Belongs to group instance of this notification as polymorphic association.
-
#group_members ⇒ ActiveRecord_AssociationRelation<Notificaion>
Has many group member notification instances of this notification.
-
#group_owner ⇒ Notification
Belongs to group owner notification instance of this notification.
-
#notifiable ⇒ Object
Belongs to notifiable instance of this notification as polymorphic association.
-
#notifier ⇒ Object
Belongs to :notifier instance of this notification.
-
#target ⇒ Object
Belongs to target instance of this notification as polymorphic association.
-
#with_group ⇒ ActiveRecord_AssociationRelation<Notificaion>
Includes group instance with query for notifications.
-
#with_group_members ⇒ ActiveRecord_AssociationRelation<Notificaion>
Includes group member instances with query for notifications.
-
#with_group_owner ⇒ ActiveRecord_AssociationRelation<Notificaion>
Includes group owner instances with query for notifications.
-
#with_notifiable ⇒ ActiveRecord_AssociationRelation<Notificaion>
Includes notifiable instance with query for notifications.
-
#with_notifier ⇒ ActiveRecord_AssociationRelation<Notificaion>
Includes notifier instance with query for notifications.
-
#with_target ⇒ ActiveRecord_AssociationRelation<Notificaion>
Includes target instance with query for notifications.
Methods included from NotificationApi
#after_store, all_index!, available_options, earliest, earliest!, #earliest_order, #earliest_order!, #email_subscribed?, filtered_by_key, filtered_by_options, filtered_by_target_type, filtered_by_type, generate_notification, #group_member?, #group_member_count, group_member_exists?, #group_member_exists?, #group_member_notifier_count, #group_member_notifier_exists?, #group_notification_count, #group_notifier_count, #group_owner?, latest, latest!, #latest_group_member, #latest_order, #latest_order!, #notifiable_path, notify, notify_all, notify_all_later, notify_later, notify_later_to, notify_to, #open!, open_all_of, #opened?, opened_index, #optional_target_names, #optional_target_subscribed?, #optional_targets, #prepare_to_store, #printable_notifiable_name, #publish_to_optional_targets, #remove_from_group, send_batch_notification_email, #send_notification_email, set_notification_mailer, #subscribed?, uniq_keys, #unopened?, unopened_index, valid_group_owner
Methods included from Renderable
#layout_path, #partial_path, #prepare_assigns, #prepare_locals, #prepare_parameters, #render, #text
Methods included from Common
#printable_name, #printable_type, #resolve_value, #to_class_name, #to_resource_name, #to_resources_name
Class Method Details
.earlier_than ⇒ ActiveRecord_AssociationRelation<Notificaion>, Mongoid::Criteria<Notificaion>
Selects filtered notifications earlier than specified time.
149 |
# File 'lib/activity_notification/orm/active_record/notification.rb', line 149 scope :earlier_than, ->(created_time) { where('created_at < ?', created_time) } |
.filtered_by_group ⇒ ActiveRecord_AssociationRelation<Notificaion>
Selects filtered notifications by group instance.
133 |
# File 'lib/activity_notification/orm/active_record/notification.rb', line 133 scope :filtered_by_group, ->(group) { where(group: group) } |
.filtered_by_instance ⇒ ActiveRecord_AssociationRelation<Notificaion>
Selects filtered notifications by notifiable instance.
125 |
# File 'lib/activity_notification/orm/active_record/notification.rb', line 125 scope :filtered_by_instance, ->(notifiable) { where(notifiable: notifiable) } |
.filtered_by_target ⇒ ActiveRecord_AssociationRelation<Notificaion>
Selects filtered notifications by target instance.
ActivityNotification::Notification.filtered_by_target(@user)
is the same as
@user.notifications
117 |
# File 'lib/activity_notification/orm/active_record/notification.rb', line 117 scope :filtered_by_target, ->(target) { where(target: target) } |
.group_members_of_owner_ids_only ⇒ ActiveRecord_AssociationRelation<Notificaion>
Selects group member notifications with specified group owner ids.
108 |
# File 'lib/activity_notification/orm/active_record/notification.rb', line 108 scope :group_members_of_owner_ids_only, ->(owner_ids) { where(group_owner_id: owner_ids) } |
.group_members_only ⇒ ActiveRecord_AssociationRelation<Notificaion>
Selects group member notifications only.
68 |
# File 'lib/activity_notification/orm/active_record/notification.rb', line 68 scope :group_members_only, -> { where.not(group_owner_id: nil) } |
.group_owners_only ⇒ ActiveRecord_AssociationRelation<Notificaion>
Selects group owner notifications only.
63 |
# File 'lib/activity_notification/orm/active_record/notification.rb', line 63 scope :group_owners_only, -> { where(group_owner_id: nil) } |
.later_than ⇒ ActiveRecord_AssociationRelation<Notificaion>, Mongoid::Criteria<Notificaion>
Selects filtered notifications later than specified time.
141 |
# File 'lib/activity_notification/orm/active_record/notification.rb', line 141 scope :later_than, ->(created_time) { where('created_at > ?', created_time) } |
.opened_index_group_members_only ⇒ ActiveRecord_AssociationRelation<Notificaion>
Selects group member notifications in opened_index.
96 |
# File 'lib/activity_notification/orm/active_record/notification.rb', line 96 scope :opened_index_group_members_only, ->(limit) { where(group_owner_id: opened_index(limit).map(&:id)) } |
.opened_only ⇒ ActiveRecord_AssociationRelation<Notificaion>
Selects opened notifications only with limit.
85 |
# File 'lib/activity_notification/orm/active_record/notification.rb', line 85 scope :opened_only, ->(limit) { opened_only!.limit(limit) } |
.opened_only! ⇒ ActiveRecord_AssociationRelation<Notificaion>
Selects opened notifications only without limit. Be careful to get too many records with this method.
79 |
# File 'lib/activity_notification/orm/active_record/notification.rb', line 79 scope :opened_only!, -> { where.not(opened_at: nil) } |
.raise_delete_restriction_error(error_text) ⇒ void
This method returns an undefined value.
Raise DeleteRestrictionError for notifications.
179 180 181 |
# File 'lib/activity_notification/orm/active_record/notification.rb', line 179 def self.raise_delete_restriction_error(error_text) raise ::ActiveRecord::DeleteRestrictionError.new(error_text) end |
.unopened_index_group_members_only ⇒ ActiveRecord_AssociationRelation<Notificaion>
Selects group member notifications in unopened_index.
90 |
# File 'lib/activity_notification/orm/active_record/notification.rb', line 90 scope :unopened_index_group_members_only, -> { where(group_owner_id: unopened_index.map(&:id)) } |
.unopened_only ⇒ ActiveRecord_AssociationRelation<Notificaion>
Selects unopened notifications only.
73 |
# File 'lib/activity_notification/orm/active_record/notification.rb', line 73 scope :unopened_only, -> { where(opened_at: nil) } |
.within_expiration_only ⇒ ActiveRecord_AssociationRelation<Notificaion>
Selects notifications within expiration.
102 |
# File 'lib/activity_notification/orm/active_record/notification.rb', line 102 scope :within_expiration_only, ->(expiry_delay) { where("created_at > ?", expiry_delay.ago) } |
Instance Method Details
#group ⇒ Object
Belongs to group instance of this notification as polymorphic association.
26 |
# File 'lib/activity_notification/orm/active_record/notification.rb', line 26 belongs_to :group, polymorphic: true, optional: true |
#group_members ⇒ ActiveRecord_AssociationRelation<Notificaion>
Has many group member notification instances of this notification. Only group owner instance has :group_members value. Group member instance has nil as :group_members association.
40 |
# File 'lib/activity_notification/orm/active_record/notification.rb', line 40 has_many :group_members, class_name: "ActivityNotification::Notification", foreign_key: :group_owner_id |
#group_owner ⇒ Notification
Belongs to group owner notification instance of this notification. Only group member instance has :group_owner value. Group owner instance has nil as :group_owner association.
33 |
# File 'lib/activity_notification/orm/active_record/notification.rb', line 33 belongs_to :group_owner, class_name: "ActivityNotification::Notification", optional: true |
#notifiable ⇒ Object
Belongs to notifiable instance of this notification as polymorphic association.
21 |
# File 'lib/activity_notification/orm/active_record/notification.rb', line 21 belongs_to :notifiable, polymorphic: true |
#notifier ⇒ Object
Belongs to :notifier instance of this notification.
45 |
# File 'lib/activity_notification/orm/active_record/notification.rb', line 45 belongs_to :notifier, polymorphic: true, optional: true |
#target ⇒ Object
Belongs to target instance of this notification as polymorphic association.
16 |
# File 'lib/activity_notification/orm/active_record/notification.rb', line 16 belongs_to :target, polymorphic: true |
#with_group ⇒ ActiveRecord_AssociationRelation<Notificaion>
Includes group instance with query for notifications.
161 |
# File 'lib/activity_notification/orm/active_record/notification.rb', line 161 scope :with_group, -> { includes(:group) } |
#with_group_members ⇒ ActiveRecord_AssociationRelation<Notificaion>
Includes group member instances with query for notifications.
169 |
# File 'lib/activity_notification/orm/active_record/notification.rb', line 169 scope :with_group_members, -> { includes(:group_members) } |
#with_group_owner ⇒ ActiveRecord_AssociationRelation<Notificaion>
Includes group owner instances with query for notifications.
165 |
# File 'lib/activity_notification/orm/active_record/notification.rb', line 165 scope :with_group_owner, -> { includes(:group_owner) } |
#with_notifiable ⇒ ActiveRecord_AssociationRelation<Notificaion>
Includes notifiable instance with query for notifications.
157 |
# File 'lib/activity_notification/orm/active_record/notification.rb', line 157 scope :with_notifiable, -> { includes(:notifiable) } |
#with_notifier ⇒ ActiveRecord_AssociationRelation<Notificaion>
Includes notifier instance with query for notifications.
173 |
# File 'lib/activity_notification/orm/active_record/notification.rb', line 173 scope :with_notifier, -> { includes(:notifier) } |
#with_target ⇒ ActiveRecord_AssociationRelation<Notificaion>
Includes target instance with query for notifications.
153 |
# File 'lib/activity_notification/orm/active_record/notification.rb', line 153 scope :with_target, -> { includes(:target) } |