Socialization is a Ruby Gem that allows any ActiveRecord model to Follow
, Like
, 'Comment' and/or Share
any other model. Cassandra is used as a data store.
Add the gem to the gemfile:
gem "socialization-cassandra"
Run the generator:
rails generate socialization -s
Run:
rake socialization:migrate
This gem requires Rails 3 or better. Sorry!
Allow a model to be followed:
class Celebrity < ActiveRecord::Base
...
acts_as_followable
...
end
Allow a model to be a follower:
class User < ActiveRecord::Base
...
acts_as_follower
...
end
Allow a model to be liked:
class Movie < ActiveRecord::Base
...
acts_as_likeable
...
end
Allow a model to like:
class User < ActiveRecord::Base
...
acts_as_liker
...
end
Follow something
user.follow!(celebrity)
Stop following
user.unfollow!(celebrity)
Toggle
user.toggle_follow!(celebrity)
Is following?
user.follows?(celebrity)
What items are you following (given that an Item model is followed)?
user.followees(Item)
Find out if an objects follows
celebrity.followed_by?(user)
All followers
celebrity.followers(User)
Like something
user.like!(movie)
Stop liking
user.unlike!(movie)
Toggle
user.toggle_like!(celebrity)
Likes?
user.likes?(movie)
Find out if an objects likes
movie.liked_by?(user)
All likers
movie.likers(User)
- Fork the project.
- Make your feature addition or bug fix.
- Add tests for it. This is important so I don't break it in a future version unintentionally.
- Send me a pull request. Bonus points for topic branches.
Copyright (c) 2015-2016 Amrit Singh-- Released under the MIT license.