Module: Amistad::FriendModel::InstanceMethods
- Defined in:
- lib/amistad/friend_model.rb
Instance Method Summary collapse
-
#approve(user) ⇒ Object
approve a friendship invitation.
-
#block(user) ⇒ Object
blocks a friendship request.
-
#common_friends_with(user) ⇒ Object
return the list of the ones among its friends which are also friend with the given use.
- #find_any_friendship_with(user) ⇒ Object
-
#friends ⇒ Object
returns the list of approved friends.
- #has_invited?(user) ⇒ Boolean
-
#invite(user) ⇒ Object
suggest a user to become a friend.
- #is_connected_with?(user) ⇒ Boolean
-
#is_friend_with?(user) ⇒ Boolean
checks if a user is a friend.
-
#remove(user) ⇒ Object
deletes a friendship.
-
#unblock(user) ⇒ Object
unblocks a friendship.
-
#was_invited_by?(user) ⇒ Boolean
checks if a user send a friendship’s invitation.
Instance Method Details
#approve(user) ⇒ Object
approve a friendship invitation. If the operation succeeds, the method returns true, else false
46 47 48 49 50 |
# File 'lib/amistad/friend_model.rb', line 46 def approve(user) friendship = find_any_friendship_with(user) return false if friendship.nil? || has_invited?(user) friendship.update_attribute(:pending, false) end |
#block(user) ⇒ Object
blocks a friendship request
58 59 60 61 62 63 |
# File 'lib/amistad/friend_model.rb', line 58 def block(user) friendship = find_any_friendship_with(user) return false if friendship.nil? || friendship.user == self friendship.blocked = true friendship.save end |
#common_friends_with(user) ⇒ Object
return the list of the ones among its friends which are also friend with the given use
104 105 106 |
# File 'lib/amistad/friend_model.rb', line 104 def common_friends_with(user) self.friends & user.friends end |
#find_any_friendship_with(user) ⇒ Object
108 109 110 111 112 113 114 |
# File 'lib/amistad/friend_model.rb', line 108 def find_any_friendship_with(user) friendship = Friendship.where(:user_id => self.id, :friend_id => user.id).first if friendship.nil? friendship = Friendship.where(:user_id => user.id, :friend_id => self.id).first end friendship end |
#friends ⇒ Object
returns the list of approved friends
53 54 55 |
# File 'lib/amistad/friend_model.rb', line 53 def friends self.invited(true) + self.invited_by(true) end |
#has_invited?(user) ⇒ Boolean
97 98 99 100 101 |
# File 'lib/amistad/friend_model.rb', line 97 def has_invited?(user) friendship = find_any_friendship_with(user) return false if friendship.nil? friendship.friend == user end |
#invite(user) ⇒ Object
suggest a user to become a friend. If the operation succeeds, the method returns true, else false
40 41 42 43 |
# File 'lib/amistad/friend_model.rb', line 40 def invite(user) return false if user == self || find_any_friendship_with(user) Friendship.new(:user_id => self.id, :friend_id => user.id).save end |
#is_connected_with?(user) ⇒ Boolean
86 87 88 |
# File 'lib/amistad/friend_model.rb', line 86 def is_connected_with?(user) !find_any_friendship_with(user).nil? end |
#is_friend_with?(user) ⇒ Boolean
checks if a user is a friend
82 83 84 |
# File 'lib/amistad/friend_model.rb', line 82 def is_friend_with?(user) friends.include?(user) end |
#remove(user) ⇒ Object
deletes a friendship
74 75 76 77 78 79 |
# File 'lib/amistad/friend_model.rb', line 74 def remove(user) friendship = find_any_friendship_with(user) return false if friendship.nil? friendship.destroy friendship.destroyed? end |
#unblock(user) ⇒ Object
unblocks a friendship
66 67 68 69 70 71 |
# File 'lib/amistad/friend_model.rb', line 66 def unblock(user) friendship = find_any_friendship_with(user) return false if friendship.nil? || friendship.user == self friendship.blocked = false friendship.save end |
#was_invited_by?(user) ⇒ Boolean
checks if a user send a friendship’s invitation
91 92 93 94 95 |
# File 'lib/amistad/friend_model.rb', line 91 def was_invited_by?(user) friendship = find_any_friendship_with(user) return false if friendship.nil? friendship.user == user end |