Class: ActivityNotification::ORM::Mongoid::Subscription
- Inherits:
-
Object
- Object
- ActivityNotification::ORM::Mongoid::Subscription
- Includes:
- Association, SubscriptionApi, Mongoid::Attributes::Dynamic, Mongoid::Document, Mongoid::Timestamps
- Defined in:
- lib/activity_notification/orm/mongoid/subscription.rb
Overview
Subscription model implementation generated by ActivityNotification.
Class Method Summary collapse
-
.filtered_by_target ⇒ Mongoid::Criteria<Subscription>
Selects filtered subscriptions by target instance.
-
.uniq_keys ⇒ Array<String>
Selects unique keys from query for subscriptions.
Instance Method Summary collapse
-
#for_notifiable ⇒ Mongoid::Criteria<Subscription>
Selects subscriptions for a specific notifiable instance.
-
#instance_level_only ⇒ Mongoid::Criteria<Subscription>
Selects instance-level subscriptions only (where notifiable is present).
-
#key_level_only ⇒ Mongoid::Criteria<Subscription>
Selects key-level subscriptions only (where notifiable is nil).
-
#notifiable ⇒ Object?
Belongs to notifiable instance of this subscription as polymorphic association (optional).
-
#target ⇒ Object
Belongs to target instance of this subscription as polymorphic association.
-
#where ⇒ Mongoid::Criteria<Subscription>
Selects filtered subscriptions by type of the object.
-
#with_target ⇒ Mongoid::Criteria<Subscription>
Includes target instance with query for subscriptions.
Methods included from SubscriptionApi
#as_json, #optional_target_names, #subscribe, #subscribe_to_email, #subscribe_to_optional_target, #subscribing_to_optional_target?, #unsubscribe, #unsubscribe_to_email, #unsubscribe_to_optional_target
Methods included from Association
Methods included from Mongoid::Document
Class Method Details
.filtered_by_target ⇒ Mongoid::Criteria<Subscription>
Selects filtered subscriptions by target instance. ActivityNotification::Subscription.filtered_by_target(@user) is the same as @user.subscriptions
60 |
# File 'lib/activity_notification/orm/mongoid/subscription.rb', line 60 scope :filtered_by_target, ->(target) { filtered_by_association("target", target) } |
.uniq_keys ⇒ Array<String>
Selects unique keys from query for subscriptions.
84 85 86 87 88 |
# File 'lib/activity_notification/orm/mongoid/subscription.rb', line 84 def self.uniq_keys # distinct method cannot keep original sort # distinct(:key) pluck(:key).uniq end |
Instance Method Details
#for_notifiable ⇒ Mongoid::Criteria<Subscription>
Selects subscriptions for a specific notifiable instance.
80 |
# File 'lib/activity_notification/orm/mongoid/subscription.rb', line 80 scope :for_notifiable, ->(notifiable) { where(notifiable_type: notifiable.class.name, notifiable_id: notifiable.id) } |
#instance_level_only ⇒ Mongoid::Criteria<Subscription>
Selects instance-level subscriptions only (where notifiable is present).
75 |
# File 'lib/activity_notification/orm/mongoid/subscription.rb', line 75 scope :instance_level_only, -> { where(:notifiable_type.ne => nil) } |
#key_level_only ⇒ Mongoid::Criteria<Subscription>
Selects key-level subscriptions only (where notifiable is nil).
71 |
# File 'lib/activity_notification/orm/mongoid/subscription.rb', line 71 scope :key_level_only, -> { where(notifiable_type: nil) } |
#notifiable ⇒ Object?
Belongs to notifiable instance of this subscription as polymorphic association (optional). When present, this subscription is scoped to a specific notifiable instance. When nil, this is a key-level subscription that applies globally.
26 |
# File 'lib/activity_notification/orm/mongoid/subscription.rb', line 26 belongs_to_polymorphic_xdb_record :notifiable, optional: true |
#target ⇒ Object
Belongs to target instance of this subscription as polymorphic association.
19 |
# File 'lib/activity_notification/orm/mongoid/subscription.rb', line 19 belongs_to_polymorphic_xdb_record :target |
#where ⇒ Mongoid::Criteria<Subscription>
Selects filtered subscriptions by type of the object. Filtering with ActivityNotification::Subscription is defined as default scope.
51 |
# File 'lib/activity_notification/orm/mongoid/subscription.rb', line 51 default_scope -> { where(_type: "ActivityNotification::Subscription") } |
#with_target ⇒ Mongoid::Criteria<Subscription>
Includes target instance with query for subscriptions.
64 |
# File 'lib/activity_notification/orm/mongoid/subscription.rb', line 64 scope :with_target, -> { } |