mongoid-likes
Forked form https://github.com/diowa/mongoid-likeable.git
This Gem extends your Mongoid user model to have like and dislike abilities to any likeable models
How to install
Install the gem
$ gem install mongoid-likes
or add the gem to your Gemfile
gem 'mongoid-likes'
How to use
Include the Mongoid::Likeable
module into the models you want to like
Include the Mongoid::Liker
module into the user model
class User
include Mongoid::Document
include Mongoid::Liker
end
class Post
include Mongoid::Document
include Mongoid::Likeable
end
Now you can like
or dislike
your posts
.
@user.like @post # user likes a post
@user.unlike @post # user unlikes a post liked before
@user.dislike @post # user dislikes a post
@user.undislike @post # user undislike a post disliked before
Note that a likeable resource can not be liked and dislied by the same user at the same time
@user.like @post_one #=> user likes a post
@user.dislike @post_one #=> will return false
@user.dislike @post_one #=> user dislikes a post
@user.like @post_one #=> will return false
To get how many likes or dislikes a resource have
@post.likes #=> number of likes current post have
@post.dislikes #=> number of dislikes current post have
To check if user liked of disliked a resource
@post.liked_by? @user
@user.liked? @post
@post.disliked_by? @user
@user.disliked? @user
To get a resource's likers
and dislikers
@post.likers #=> results in Mongoid::Criteria
@post.lkiers.where(....)
@post.dislikers #=> results in Mongoid::Criteria
@post.dislkiers.where(....)
To get specified type
of objects user liked or disliked
@user.all_liked :post #=> results in Mongoid::Criteria
@user.all_liked :blabla #=> return nil, since model 'blabla' does not exist
@user.all_disliked :post #=> results in Mongoid::Criteria
Contributing
any issue reports and conributions are welcome
Authors
Copyright and license
Copyright 2016 dingxizheng under MIT LICENSE.