From 267d8d1865635629860461572265f1dbdfcddac3 Mon Sep 17 00:00:00 2001 From: AntonioTerceiro Date: Tue, 26 Feb 2008 22:48:00 +0000 Subject: [PATCH] ActionItem36: listing friend groups --- app/models/person.rb | 4 ++++ test/unit/person_test.rb | 13 +++++++++++++ 2 files changed, 17 insertions(+), 0 deletions(-) diff --git a/app/models/person.rb b/app/models/person.rb index c84bd11..4927789 100644 --- a/app/models/person.rb +++ b/app/models/person.rb @@ -5,6 +5,10 @@ class Person < Profile has_many :friendships has_many :friends, :class_name => 'Person', :through => :friendships + def friend_groups + friendships.map {|item| item.group}.uniq + end + # has_many :person_friendships # has_many :people, :through => :person_friendships, :foreign_key => 'friend_id' diff --git a/test/unit/person_test.rb b/test/unit/person_test.rb index ae0c8ba..30d25b6 100644 --- a/test/unit/person_test.rb +++ b/test/unit/person_test.rb @@ -158,4 +158,17 @@ class PersonTest < Test::Unit::TestCase end + should 'list friend groups' do + p1 = create_user('testuser1').person + p2 = create_user('testuser2').person + p3 = create_user('testuser3').person + p4 = create_user('testuser4').person + + Friendship.create!(:person => p1, :friend => p2, :group => 'family') + Friendship.create!(:person => p1, :friend => p3, :group => 'school') + Friendship.create!(:person => p1, :friend => p4, :group => 'school') + + assert_equivalent ['family', 'school'], p1.friend_groups + end + end -- libgit2 0.21.2