Module: Recommendable::ActsAsRecommendedTo::DislikeMethods
- Defined in:
- lib/recommendable/acts_as_recommended_to.rb
Instance Method Summary collapse
-
#dislike(object) ⇒ Object
Creates a Recommendable::Dislike to associate self to a passed object.
-
#disliked ⇒ Array
An array of ActiveRecord objects that self has disliked.
-
#disliked_for(klass) ⇒ Array
Get a list of records belonging to a passed class that self currently dislikes.
-
#dislikes?(object) ⇒ Boolean
Checks to see if self has already disliked a passed object.
-
#undislike(object) ⇒ Object
Destroys a Recommendable::Dislike currently associating self with object.
Instance Method Details
#dislike(object) ⇒ Object
Creates a Recommendable::Dislike to associate self to a passed object. If self is currently found to have liked object, the corresponding Recommendable::Like will be destroyed. It will also be removed from the user’s stash or list of ignores.
108 109 110 111 112 113 114 115 |
# File 'lib/recommendable/acts_as_recommended_to.rb', line 108 def dislike(object) raise RecordNotRecommendableError unless object.recommendable? return if dislikes?(object) completely_unrecommend(object) dislikes.create!(:dislikeable_id => object.id, :dislikeable_type => object.class.to_s) Resque.enqueue RecommendationRefresher, self.id, object.send(:rates_by) true end |
#disliked ⇒ Array
Returns an array of ActiveRecord objects that self has disliked.
139 140 141 |
# File 'lib/recommendable/acts_as_recommended_to.rb', line 139 def disliked dislikes.map {|dislike| dislike.dislikeable} end |
#disliked_for(klass) ⇒ Array
Get a list of records belonging to a passed class that self currently dislikes.
148 149 150 |
# File 'lib/recommendable/acts_as_recommended_to.rb', line 148 def disliked_for(klass) klass.to_s.classify.constantize.find dislikes_for(klass).map(&:dislikeable_id) end |
#dislikes?(object) ⇒ Boolean
Checks to see if self has already disliked a passed object.
121 122 123 |
# File 'lib/recommendable/acts_as_recommended_to.rb', line 121 def dislikes?(object) dislikes.exists?(:dislikeable_id => object.id, :dislikeable_type => object.class.to_s) end |
#undislike(object) ⇒ Object
Destroys a Recommendable::Dislike currently associating self with object
129 130 131 132 133 134 |
# File 'lib/recommendable/acts_as_recommended_to.rb', line 129 def undislike(object) if dislikes.where(:dislikeable_id => object.id, :dislikeable_type => object.class.to_s).first.try(:destroy) Resque.enqueue RecommendationRefresher, self.id, object.send(:rates_by) true end end |