Module: Party::Boy::FriendlyInstanceMethods
- Defined in:
- lib/party_boy.rb
Instance Method Summary collapse
- #deny_friendship(friendship_or_something) ⇒ Object
- #extended_network ⇒ Object
- #friend_count ⇒ Object
- #friends ⇒ Object
- #friends_with?(something) ⇒ Boolean
- #incoming_friend_requests ⇒ Object
- #outgoing_friend_requests ⇒ Object
- #pending?(something) ⇒ Boolean
- #request_friendship(friendship_or_something) ⇒ Object (also: #accept_friendship)
Instance Method Details
#deny_friendship(friendship_or_something) ⇒ Object
207 208 209 |
# File 'lib/party_boy.rb', line 207 def deny_friendship(friendship_or_something) (rel = relationship_from(friendship_or_something)) && rel.destroy end |
#extended_network ⇒ Object
175 176 177 |
# File 'lib/party_boy.rb', line 175 def extended_network friends.collect{|friend| friend.methods.include?('friends') && friend.friends || []}.flatten.uniq - [self] end |
#friend_count ⇒ Object
197 198 199 200 |
# File 'lib/party_boy.rb', line 197 def friend_count arr = [self.id, super_class_name] Relationship.accepted.count(:conditions => ['(requestor_id = ? AND requestor_type = ?) OR (requestee_id = ? and requestee_type = ?)', arr, arr].flatten) end |
#friends ⇒ Object
171 172 173 |
# File 'lib/party_boy.rb', line 171 def friends (outgoing_friendships.accepted + incoming_friendships.accepted).collect{|relationship| [relationship.requestor, relationship.requestee]}.flatten.uniq - [self] end |
#friends_with?(something) ⇒ Boolean
187 188 189 190 |
# File 'lib/party_boy.rb', line 187 def friends_with?(something) arr = something && [self.id, super_class_name, super_class_name(something), something.id] arr && Relationship.accepted.count(:conditions => [(['(requestor_id = ? AND requestor_type = ? AND requestee_type = ? AND requestee_id = ?)']*2).join(' OR '), arr, arr.reverse].flatten) > 0 end |
#incoming_friend_requests ⇒ Object
183 184 185 |
# File 'lib/party_boy.rb', line 183 def incoming_friend_requests self.incoming_friendships.unaccepted.all end |
#outgoing_friend_requests ⇒ Object
179 180 181 |
# File 'lib/party_boy.rb', line 179 def outgoing_friend_requests self.outgoing_friendships.unaccepted.all end |
#pending?(something) ⇒ Boolean
192 193 194 195 |
# File 'lib/party_boy.rb', line 192 def pending?(something) arr = something && [self.id, super_class_name, super_class_name(something), something.id] arr && Relationship.unaccepted.count(:conditions => [(['(requestor_id = ? AND requestor_type = ? AND requestee_type = ? AND requestee_id = ?)']*2).join(' OR '), arr, arr.reverse].flatten) > 0 end |
#request_friendship(friendship_or_something) ⇒ Object Also known as: accept_friendship
202 203 204 205 |
# File 'lib/party_boy.rb', line 202 def request_friendship(friendship_or_something) relationship = relationship_from(friendship_or_something) relationship.nil? && Relationship.create(:requestor => self, :requestee => friendship_or_something, :restricted => true) || (relationship.requestee == self && relationship.update_attributes(:restricted => false)) end |