Module: WithDiscussionCreation::Subscription

Extended by:
ActiveSupport::Concern
Defined in:
app/models/concerns/with_discussion_creation/subscription.rb

Instance Method Summary collapse

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

Returns:

  • (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_discussionsObject



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