Module: VotableItem
- Extended by:
- ActiveSupport::Concern
- Defined in:
- app/models/concerns/votable_item.rb
Instance Method Summary collapse
- #vote_applicable?(vote_or_slug) ⇒ Boolean
- #vote_data(vote_or_slug) ⇒ Object
- #voted(vote_or_slug) ⇒ Object
Instance Method Details
#vote_applicable?(vote_or_slug) ⇒ Boolean
11 12 13 14 |
# File 'app/models/concerns/votable_item.rb', line 11 def vote_applicable?(vote_or_slug) slug = vote_or_slug.is_a?(String) ? vote_or_slug : vote_or_slug.slug !Vote.voted?(slug, self) end |
#vote_data(vote_or_slug) ⇒ Object
17 18 19 20 21 22 23 24 |
# File 'app/models/concerns/votable_item.rb', line 17 def vote_data(vote_or_slug) { upvote_count: upvote_count, downvote_count: downvote_count, vote_result: vote_result, vote_type: voted(vote_or_slug) } end |
#voted(vote_or_slug) ⇒ Object
27 28 29 30 31 32 |
# File 'app/models/concerns/votable_item.rb', line 27 def voted(vote_or_slug) vote = vote_or_slug.is_a?(String) ? votes.find_by(slug: vote_or_slug) : vote_or_slug return :none if vote&.id.nil? vote.upvote? ? :upvote : :downvote end |