20 lines
663 B
Ruby
20 lines
663 B
Ruby
# Copyright (c) 2010, Diaspora Inc. This file is
|
|
# licensed under the Affero General Public License version 3 or later. See
|
|
# the COPYRIGHT file.
|
|
|
|
module Diaspora
|
|
module Likeable
|
|
def self.included(model)
|
|
model.instance_eval do
|
|
has_many :likes, :conditions => {:positive => true}, :dependent => :delete_all, :as => :target
|
|
has_many :dislikes, :conditions => {:positive => false}, :class_name => 'Like', :dependent => :delete_all, :as => :target
|
|
end
|
|
end
|
|
|
|
# @return [Integer]
|
|
def update_likes_counter
|
|
self.class.where(:id => self.id).
|
|
update_all(:likes_count => self.likes.count)
|
|
end
|
|
end
|
|
end
|