module Friendis::Friendable::InstanceMethods
Public Instance Methods
_update_friendis_meta_data()
click to toggle source
# File lib/friendis/friendable.rb, line 111 def _update_friendis_meta_data Friendis.redis.multi do attr_hash = {} self.class.friendis_fields.each do |field| attr_hash[field] = self.send(field) end Friendis.redis.hmset friendis_meta_key, *attr_hash.to_a end true end
approve_friend_request(friend)
click to toggle source
# File lib/friendis/friendable.rb, line 55 def approve_friend_request(friend) return false unless has_friend_request_from?(friend) Friendis.redis.multi do Friendis.redis.srem friend.friendis_outgoing_friend_requests_key, self.id.to_s Friendis.redis.srem friendis_incoming_friend_requests_key, friend.id.to_s Friendis.redis.sadd friendis_my_friends_key, friend.id.to_s Friendis.redis.sadd friend.friendis_my_friends_key, self.id.to_s end true end
clear_friendis_data()
click to toggle source
# File lib/friendis/friendable.rb, line 105 def clear_friendis_data [friendis_meta_key, friendis_my_friends_key, friendis_incoming_friend_requests_key, friendis_outgoing_friend_requests_key].each do |friendis_key| Friendis.redis.del friendis_key end end
friendis_incoming_friend_requests_key()
click to toggle source
# File lib/friendis/friendable.rb, line 131 def friendis_incoming_friend_requests_key "#{self.class.name.downcase}:#{self.id}:friend_requests" end
friendis_meta_key(uuid = nil)
click to toggle source
# File lib/friendis/friendable.rb, line 123 def friendis_meta_key(uuid = nil) "#{self.class.name.downcase}:#{uuid || self.id}:friendis_meta" end
friendis_my_friends_key()
click to toggle source
# File lib/friendis/friendable.rb, line 127 def friendis_my_friends_key "#{self.class.name.downcase}:#{self.id}:friends" end
friendis_outgoing_friend_requests_key()
click to toggle source
# File lib/friendis/friendable.rb, line 135 def friendis_outgoing_friend_requests_key "#{self.class.name.downcase}:#{self.id}:requested_friendship" end
friends()
click to toggle source
# File lib/friendis/friendable.rb, line 85 def friends Friendis.redis.smembers(friendis_my_friends_key).collect {|friend_id| get_friendis_meta(friend_id)} end
get_friendis_meta(uuid = nil)
click to toggle source
# File lib/friendis/friendable.rb, line 44 def get_friendis_meta(uuid = nil) Friendis.redis.hgetall friendis_meta_key(uuid) end
has_friend_request_from?(friend)
click to toggle source
# File lib/friendis/friendable.rb, line 89 def has_friend_request_from?(friend) Friendis.redis.sismember friendis_incoming_friend_requests_key, friend.id.to_s end
ignore_friend_request(friend)
click to toggle source
# File lib/friendis/friendable.rb, line 67 def ignore_friend_request(friend) return false unless has_friend_request_from?(friend) # Ignoring a friend request, leaves the request in the requester queue, but removes # it from the pending requests list of the recipient. Friendis.redis.multi do Friendis.redis.srem friendis_incoming_friend_requests_key, friend.id.to_s end true end
is_friends_with?(friend)
click to toggle source
# File lib/friendis/friendable.rb, line 93 def is_friends_with?(friend) Friendis.redis.sismember friendis_my_friends_key, friend.id.to_s end
pending_friend_requests()
click to toggle source
# File lib/friendis/friendable.rb, line 97 def pending_friend_requests Friendis.redis.smembers(friendis_incoming_friend_requests_key).collect {|friend_id| get_friendis_meta(friend_id)} end
send_friend_request(friend)
click to toggle source
# File lib/friendis/friendable.rb, line 48 def send_friend_request(friend) Friendis.redis.multi do Friendis.redis.sadd friendis_outgoing_friend_requests_key, friend.id.to_s Friendis.redis.sadd friend.friendis_incoming_friend_requests_key, self.id.to_s end end
sent_friend_requests()
click to toggle source
# File lib/friendis/friendable.rb, line 101 def sent_friend_requests Friendis.redis.smembers(friendis_outgoing_friend_requests_key).collect {|friend_id| get_friendis_meta(friend_id)} end
unfriend(friend)
click to toggle source
# File lib/friendis/friendable.rb, line 78 def unfriend(friend) Friendis.redis.multi do Friendis.redis.srem friendis_my_friends_key, friend.id Friendis.redis.srem friend.friendis_my_friends_key, self.id end end