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.
-
#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.
193 194 195 196 197 198 199 200 201 202 |
# File 'lib/recommendable/acts_as_recommended_to.rb', line 193 def dislike object raise UnrecommendableError unless object.recommendable? return if dislikes? object run_hook :before_dislike, object dislikes.create! :dislikeable_id => object.id, :dislikeable_type => object.class run_hook :after_dislike, object true end |
#disliked ⇒ Array
Returns an array of ActiveRecord objects that self has disliked.
229 230 231 |
# File 'lib/recommendable/acts_as_recommended_to.rb', line 229 def disliked Recommendable.recommendable_classes.map { |klass| disliked_for klass }.flatten end |
#dislikes?(object) ⇒ Boolean
Checks to see if self has already disliked a passed object.
208 209 210 |
# File 'lib/recommendable/acts_as_recommended_to.rb', line 208 def dislikes? object dislikes.exists? :dislikeable_id => object.id, :dislikeable_type => object.class.base_class.to_s end |
#undislike(object) ⇒ Object
Destroys a Recommendable::Dislike currently associating self with object
216 217 218 219 220 221 222 223 224 |
# File 'lib/recommendable/acts_as_recommended_to.rb', line 216 def undislike object dislike = dislikes.where(:dislikeable_id => object.id, :dislikeable_type => object.class.base_class.to_s) if dislike.exists? run_hook :before_undislike, object dislike.first.destroy run_hook :after_undislike, object true end end |