Un jour, une gem

02/08/2012

Jeudi c'est Likeable

gem install likeable

Pour tout liker

Aujourd’hui une gem pour permettre à un model d’en liker d’autres. Pour la mise en place de la gem cela se passe comme ceci :

initializers/likeable.rb

  1. Likeable.setup do |likeable|
  2. likeable.redis = Redis.new
  3. end

On prépare le model qui peut liker :

  1. class User
  2. include Likeable::UserMethods
  3. end

Et on ajoute des models qui peuvent se faire liker :

  1. class Comment
  2. include Likeable
  3. end

Maintenant vous avez accès à tout ce qu’il faut comme méthodes :

  1. comment = Comment.find(15)
  2. comment.like_count # => 0
  3. current_user.like!(comment) # => #<Likeable::Like ... >
  4. comment.like_count # => 1
  5. comment.likes # => [#<Likeable::Like ... >]
  6. comment.likes.last.user # => #<User ... >
  7. comment.likes.last.created_at # => Wed Jul 27 19:34:32 -0500 2011
  8. comment.liked_by?(current_user) # => true
  9. current_user.all_liked(Comment) # => [#<Comment ...>, ...]
  10. liked_comment = Likeable.find_by_resource_id("Comment", 15)
  11. liked_comment == comment # => true

Et pour finir, tout est stocké avec Redis :)

Le lien utile

Sur une idée de @msadouni