Module: Amistad::FriendModel::InstanceMethods

Defined in:
lib/amistad/friend_model.rb

Instance Method Summary collapse

Instance Method Details

#approve(user) ⇒ Object



50
51
52
53
54
55
# File 'lib/amistad/friend_model.rb', line 50

def approve(user)
  friendship = find_any_friendship_with(user)
  return false if friendship.nil?
  friendship.pending = false
  friendship.save
end

#common_friends_with(user) ⇒ Object



79
80
81
# File 'lib/amistad/friend_model.rb', line 79

def common_friends_with(user)
  self.friends & user.friends
end

#friendsObject



57
58
59
# File 'lib/amistad/friend_model.rb', line 57

def friends
  self.invited(true) + self.invited_by(true)
end

#invite(user) ⇒ Object



40
41
42
43
44
45
46
47
48
# File 'lib/amistad/friend_model.rb', line 40

def invite(user)
  return false if user == self
  
  friendship = find_any_friendship_with(user)
  return false if not friendship.nil?
  
  friendship = Friendship.new(:user_id => self.id, :friend_id => user.id)
  friendship.save
end

#is_friend_with?(user) ⇒ Boolean

Returns:

  • (Boolean)


68
69
70
# File 'lib/amistad/friend_model.rb', line 68

def is_friend_with?(user)
  friends.include?(user)
end

#remove(user) ⇒ Object



61
62
63
64
65
66
# File 'lib/amistad/friend_model.rb', line 61

def remove(user)
  friendship = find_any_friendship_with(user)
  return false if friendship.nil?
  friendship.destroy
  friendship.destroyed?
end

#was_invited_by?(user) ⇒ Boolean

Returns:

  • (Boolean)


72
73
74
75
76
77
# File 'lib/amistad/friend_model.rb', line 72

def was_invited_by?(user)
  inverse_friendships.each do |friendship|
    return true if friendship.user == user
  end
  false
end