Sha256: 8dbf681a9ee25f055e9e4e426492b27afa09fe3be80c20bb51494519947f9203
Contents?: true
Size: 662 Bytes
Versions: 1
Compression:
Stored size: 662 Bytes
Contents
module Socialization module Likeable def self.included(base) base.class_eval do # A liking is the Like record of the liker liking self. has_many :likings, :as => :likeable, :dependent => :destroy, :class_name => 'Like' def is_likeable? true end def liked_by?(liker) raise ArgumentError, "#{liker} is not a liker!" unless liker.respond_to?(:is_liker?) && liker.is_liker? !self.likings.where(:liker_type => liker.class.to_s, :liker_id => liker.id).pluck("1").empty? end def likers self.likings.map { |l| l.liker } end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
socialization-0.1.0 | lib/socialization/likeable.rb |