Module: WithDiscussionCreation::Subscription
- Extended by:
- ActiveSupport::Concern
- Defined in:
- app/models/concerns/with_discussion_creation/subscription.rb
Instance Method Summary collapse
- #subscribe_to!(discussion) ⇒ Object
- #subscribed_to?(discussion) ⇒ Boolean
- #toggle_subscription!(discussion) ⇒ Object
- #unread_discussions ⇒ Object
- #unsubscribe_to!(discussion) ⇒ Object
Instance Method Details
#subscribe_to!(discussion) ⇒ Object
14 15 16 |
# File 'app/models/concerns/with_discussion_creation/subscription.rb', line 14 def subscribe_to!(discussion) watched_discussions << discussion end |
#subscribed_to?(discussion) ⇒ Boolean
10 11 12 |
# File 'app/models/concerns/with_discussion_creation/subscription.rb', line 10 def subscribed_to?(discussion) discussion.subscription_for(self).present? end |
#toggle_subscription!(discussion) ⇒ Object
22 23 24 25 26 27 28 |
# File 'app/models/concerns/with_discussion_creation/subscription.rb', line 22 def toggle_subscription!(discussion) if subscribed_to?(discussion) unsubscribe_to!(discussion) else subscribe_to!(discussion) end end |
#unread_discussions ⇒ Object
30 31 32 |
# File 'app/models/concerns/with_discussion_creation/subscription.rb', line 30 def unread_discussions subscriptions.where(read: false).map(&:discussion) end |
#unsubscribe_to!(discussion) ⇒ Object
18 19 20 |
# File 'app/models/concerns/with_discussion_creation/subscription.rb', line 18 def unsubscribe_to!(discussion) watched_discussions.delete(discussion) end |