Module: WithDiscussionCreation::Upvote

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

Instance Method Summary collapse

Instance Method Details

#toggle_upvote!(discussion) ⇒ Object



21
22
23
24
25
26
27
# File 'app/models/concerns/with_discussion_creation/upvote.rb', line 21

def toggle_upvote!(discussion)
  if upvoted?(discussion)
    undo_upvote!(discussion)
  else
    upvote!(discussion)
  end
end

#undo_upvote!(discussion) ⇒ Object



17
18
19
# File 'app/models/concerns/with_discussion_creation/upvote.rb', line 17

def undo_upvote!(discussion)
  upvoted_discussions.delete(discussion)
end

#upvote!(discussion) ⇒ Object



13
14
15
# File 'app/models/concerns/with_discussion_creation/upvote.rb', line 13

def upvote!(discussion)
  upvoted_discussions << discussion
end

#upvoted?(discussion) ⇒ Boolean

Returns:

  • (Boolean)


9
10
11
# File 'app/models/concerns/with_discussion_creation/upvote.rb', line 9

def upvoted?(discussion)
  discussion.upvote_for(self).present?
end