module SelfRateable::Core::InstanceMethods::Likes
Public Instance Methods
like(rater)
click to toggle source
# File lib/self_rateable/core/instance_methods.rb, line 12 def like(rater) rater.present? ? rate = ratings.where(rater_id: rater.id).first : raise('Rater object is incorrect.') if rate.present? # unlike if already rated liked_by_rater?(rater) ? ratings.where(rater_id: rater.id).delete_all : rate.rating += 1 rate.save! else #create new record if not yet rated ratings << SelfRateable::Rating.new(rating: 1, rater_id: rater.try(:id)) end self.save! end
liked_by_rater?(rater)
click to toggle source
# File lib/self_rateable/core/instance_methods.rb, line 8 def liked_by_rater?(rater) ratings.where(:rater_id => rater.id).count > 0 end
likes()
click to toggle source
# File lib/self_rateable/core/instance_methods.rb, line 4 def likes ratings.sum(:rating).to_f end