module YeshuaCrm::ActsAsVotable::Voter
Public Class Methods
included(base)
click to toggle source
# File lib/yeshua_crm/acts_as_votable/voter.rb, line 4 def self.included(base) # allow user to define these aliases = { :vote_up_for => [:likes, :upvotes, :up_votes], :vote_down_for => [:dislikes, :downvotes, :down_votes], :unvote_for => [:unlike, :undislike], :voted_on? => [:voted_for?], :voted_up_on? => [:voted_up_for?, :liked?], :voted_down_on? => [:voted_down_for?, :disliked?], :voted_as_when_voting_on => [:voted_as_when_voted_on, :voted_as_when_voting_for, :voted_as_when_voted_for], :find_up_voted_items => [:find_liked_items], :find_down_voted_items => [:find_disliked_items] } base.class_eval do has_many :votes, :class_name => 'YeshuaCrm::ActsAsVotable::Vote', :as => :voter, :dependent => :destroy do def votables includes(:votable).map(&:votable) end end aliases.each do |method, links| links.each do |new_method| alias_method(new_method, method) end end end end
voter?()
click to toggle source
# File lib/yeshua_crm/acts_as_votable/rcrm_acts_as_voter.rb, line 13 def self.voter? true end
Public Instance Methods
find_down_voted_items(extra_conditions = {})
click to toggle source
# File lib/yeshua_crm/acts_as_votable/voter.rb, line 114 def find_down_voted_items(extra_conditions = {}) find_voted_items extra_conditions.merge(:vote_flag => false) end
find_down_votes(args = {})
click to toggle source
# File lib/yeshua_crm/acts_as_votable/voter.rb, line 84 def find_down_votes(args = {}) find_votes :vote_flag => false, :vote_scope => args[:vote_scope] end
find_down_votes_for_class(klass, args = {})
click to toggle source
# File lib/yeshua_crm/acts_as_votable/voter.rb, line 96 def find_down_votes_for_class(klass, args = {}) find_votes_for_class klass, :vote_flag => false, :vote_scope => args[:vote_scope] end
find_up_voted_items(extra_conditions = {})
click to toggle source
# File lib/yeshua_crm/acts_as_votable/voter.rb, line 110 def find_up_voted_items(extra_conditions = {}) find_voted_items extra_conditions.merge(:vote_flag => true) end
find_up_votes(args = {})
click to toggle source
# File lib/yeshua_crm/acts_as_votable/voter.rb, line 80 def find_up_votes(args = {}) find_votes :vote_flag => true, :vote_scope => args[:vote_scope] end
find_up_votes_for_class(klass, args = {})
click to toggle source
# File lib/yeshua_crm/acts_as_votable/voter.rb, line 92 def find_up_votes_for_class(klass, args = {}) find_votes_for_class klass, :vote_flag => true, :vote_scope => args[:vote_scope] end
find_voted_items(extra_conditions = {})
click to toggle source
# File lib/yeshua_crm/acts_as_votable/voter.rb, line 105 def find_voted_items(extra_conditions = {}) options = extra_conditions.merge :voter_id => id, :voter_type => self.class.base_class.name include_objects.where(options).collect(&:votable) end
find_votes(extra_conditions = {})
click to toggle source
# File lib/yeshua_crm/acts_as_votable/voter.rb, line 76 def find_votes(extra_conditions = {}) votes.where(extra_conditions) end
find_votes_for_class(klass, extra_conditions = {})
click to toggle source
# File lib/yeshua_crm/acts_as_votable/voter.rb, line 88 def find_votes_for_class(klass, extra_conditions = {}) find_votes extra_conditions.merge(:votable_type => klass.name) end
get_down_voted(klass)
click to toggle source
# File lib/yeshua_crm/acts_as_votable/voter.rb, line 126 def get_down_voted(klass) klass.joins(:votes_for).merge find_down_votes end
get_up_voted(klass)
click to toggle source
# File lib/yeshua_crm/acts_as_votable/voter.rb, line 122 def get_up_voted(klass) klass.joins(:votes_for).merge find_up_votes end
get_voted(klass, extra_conditions = {})
click to toggle source
# File lib/yeshua_crm/acts_as_votable/voter.rb, line 118 def get_voted(klass, extra_conditions = {}) klass.joins(:votes_for).merge find_votes(extra_conditions) end
include_objects()
click to toggle source
Including polymporphic relations for eager loading
# File lib/yeshua_crm/acts_as_votable/voter.rb, line 101 def include_objects YeshuaCrm::ActsAsVotable::Vote.includes(:votable) end
rcrm_acts_as_voter(*args)
click to toggle source
# File lib/yeshua_crm/acts_as_votable/rcrm_acts_as_voter.rb, line 8 def rcrm_acts_as_voter(*args) require 'yeshua_crm/acts_as_votable/voter' include YeshuaCrm::ActsAsVotable::Voter class_eval do def self.voter? true end end end
unvote_for(model, args = {})
click to toggle source
# File lib/yeshua_crm/acts_as_votable/voter.rb, line 46 def unvote_for(model, args = {}) model.unvote :voter => self, :vote_scope => args[:vote_scope] end
votables()
click to toggle source
# File lib/yeshua_crm/acts_as_votable/voter.rb, line 20 def votables includes(:votable).map(&:votable) end
vote(args)
click to toggle source
voting
# File lib/yeshua_crm/acts_as_votable/voter.rb, line 34 def vote(args) args[:votable].vote_by args.merge(:voter => self) end
vote_down_for(model = nil, args = {})
click to toggle source
# File lib/yeshua_crm/acts_as_votable/voter.rb, line 42 def vote_down_for(model = nil, args = {}) vote :votable => model, :vote_scope => args[:vote_scope], :vote => false end
vote_up_for(model = nil, args = {})
click to toggle source
# File lib/yeshua_crm/acts_as_votable/voter.rb, line 38 def vote_up_for(model = nil, args = {}) vote :votable => model, :vote_scope => args[:vote_scope], :vote => true end
voted_as_when_voting_on(votable, args = {})
click to toggle source
# File lib/yeshua_crm/acts_as_votable/voter.rb, line 69 def voted_as_when_voting_on(votable, args = {}) vote = find_votes(:votable_id => votable.id, :votable_type => votable.class.base_class.name, :vote_scope => args[:vote_scope]).select(:vote_flag).last return nil unless vote vote.vote_flag end
voted_down_on?(votable, args = {})
click to toggle source
# File lib/yeshua_crm/acts_as_votable/voter.rb, line 63 def voted_down_on?(votable, args = {}) votes = find_votes(:votable_id => votable.id, :votable_type => votable.class.base_class.name, :vote_scope => args[:vote_scope], :vote_flag => false) !votes.empty? end
voted_on?(votable, args = {})
click to toggle source
results
# File lib/yeshua_crm/acts_as_votable/voter.rb, line 51 def voted_on?(votable, args = {}) votes = find_votes(:votable_id => votable.id, :votable_type => votable.class.base_class.name, :vote_scope => args[:vote_scope]) !votes.empty? end
voted_up_on?(votable, args = {})
click to toggle source
# File lib/yeshua_crm/acts_as_votable/voter.rb, line 57 def voted_up_on?(votable, args = {}) votes = find_votes(:votable_id => votable.id, :votable_type => votable.class.base_class.name, :vote_scope => args[:vote_scope], :vote_flag => true) !votes.empty? end
voter?()
click to toggle source
# File lib/yeshua_crm/acts_as_votable/rcrm_acts_as_voter.rb, line 4 def voter? false end