mongoid-doable

While I was working with rails and mongoid, the functions like below was necessary.

user.like(comment)
user.bookmark(course)
user.register(course)
user.follow(another_user)

While implementing these functions, I found that they all do the same thing in the model, they just have a different expression. So the mongoid-doable came out.

Installation

Using Gem

gem install mongoid-doable

Using bundler

gem 'mongoid-doable'

Examples

class Course
  include Monogid::Document
  include Monogid::Doable
  doable :like, by: :user
end
class User
  include Monogid::Document
  include Monogid::Doable
  doer :like, :course
end

user = User.create
course = Course.create

user.like!(course) # or
user.like_course!(course) # or
course.liked_by!(user) # or

user.liking_courses
user.liking_courses_count

course.likers
course.likers_count

Contributing to mongoid-doable

== Copyright

Copyright © 2013 aproxacs. See LICENSE.txt for further details.