module Mongoid::Likeable

Constants

VERSION

Public Instance Methods

like(liker) click to toggle source
# File lib/mongoid/likeable.rb, line 14
def like(liker)
  id = liker_id(liker)
  return if liked? id

  push likers: id
  update_likers
end
liked?(liker) click to toggle source
# File lib/mongoid/likeable.rb, line 30
def liked?(liker)
  id = liker_id(liker)
  likers.include?(id)
end
unlike(liker) click to toggle source
# File lib/mongoid/likeable.rb, line 22
def unlike(liker)
  id = liker_id(liker)
  return unless liked? id

  pull likers: id
  update_likers
end

Private Instance Methods

liker_id(liker) click to toggle source
# File lib/mongoid/likeable.rb, line 37
def liker_id(liker)
  if liker.respond_to?(:_id)
    liker._id
  else
    liker
  end
end
update_likers() click to toggle source
# File lib/mongoid/likeable.rb, line 45
def update_likers
  update_attribute :likes, likers.size
end