Friend system for muck
JavaScript Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Muck Friends


The muck friends engine is part of the muck framework and relies upon the muck-engine, muck-users and muck-profiles gems. These gems should be installed automatically when you install the muck-friends gem. Refer to the documentation for each to setup configuration. The muck-activities gem is optional. If it is installed and enable_friend_activity is true then friend and follow activity will be fed into the user's activity feeds

Add this to your Gemfile:

gem 'muck-friends'

Add an initializer with the following:

MuckFriends.configure do |config|
  # Friend Configuration
  # The friend system provides a hybrid friend/follow model.  Either mode can be turned off or both can be enabled
  # If only following is enabled then users will be provided the ability to follow, unfollow, and block
  # If only friending is enabled then users will be provided a 'friend request' link and the ability to accept friend requests
  # If both modes are are enabled then users will be able to follow other users.  A mutual follow results in 'friends'.  An unfollow 
  # leaves the other party as just a follower.
  # Note that at least one mode must be enabled.
  config.enable_following = true   # Turn on 'following'.  This is similar to the 'follow' functionality on Twitter in that it let's users watch one 
                                  # another's activities without having explicit permission from the user.  A mutual follow essentially becomes a
                                  # friendship.
  config.enable_following = true
  config.enable_friending = true         # Turn on friend system.
  config.enable_friend_activity = true   # If true then friend related activity will show up in the activity feed.  Requires muck-activities gem

Also be sure to configure the other muck gems that muck friends depends on. Look at test/config/initializers/muck.rb for an example.


You will need a friend model that has 'include MuckFriends::Models::MuckFriend' and a user model that has 'include MuckFriends::Models::MuckUser'


After installing the gem just create a friend model thus:

class Friend < ActiveRecord::Base  
  include MuckFriends::Models::MuckFriend
  include MuckActivities::Models::MuckActivityConsumer  # requires the muck-activities gem

and a user model thus:

class User < ActiveRecord::Base
  include MuckUsers::Models::MuckUser
  include MuckFriends::Models::MuckUser
  include MuckProfiles::Models::MuckUser
  include MuckActivities::Models::MuckActivityConsumer # requires the muck-activities gem

Copyright © 2009-2010 Tatemae, released under the MIT license