Commit 6fbde715443ba8a8058fa74ff90e94fe609a5baf
1 parent
753dceb0
Exists in
master
and in
29 other branches
ActionItem36: refactoring: use Person#add_friend instead of manually creating Friendship instances
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1505 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
3 changed files
with
12 additions
and
8 deletions
Show diff stats
app/models/add_friend.rb
| ... | ... | @@ -11,8 +11,8 @@ class AddFriend < Task |
| 11 | 11 | alias :friend= :target= |
| 12 | 12 | |
| 13 | 13 | def perform |
| 14 | - Friendship.create!(:person => requestor, :friend => target, :group => group_for_person) | |
| 15 | - Friendship.create!(:person => target, :friend => requestor, :group => group_for_friend) | |
| 14 | + requestor.add_friend(target, group_for_person) | |
| 15 | + target.add_friend(requestor, group_for_friend) | |
| 16 | 16 | end |
| 17 | 17 | |
| 18 | 18 | # Returns <tt>false</tt>. Adding friends by itself does not trigger e-mail | ... | ... |
app/models/person.rb
| ... | ... | @@ -13,6 +13,10 @@ class Person < Profile |
| 13 | 13 | friendships.map {|item| item.group}.uniq |
| 14 | 14 | end |
| 15 | 15 | |
| 16 | + def add_friend(friend, group = nil) | |
| 17 | + self.friendships.build(:friend => friend, :group => group).save! | |
| 18 | + end | |
| 19 | + | |
| 16 | 20 | # has_many :person_friendships |
| 17 | 21 | # has_many :people, :through => :person_friendships, :foreign_key => 'friend_id' |
| 18 | 22 | ... | ... |
test/unit/person_test.rb
| ... | ... | @@ -147,12 +147,12 @@ class PersonTest < Test::Unit::TestCase |
| 147 | 147 | p1 = create_user('testuser1').person |
| 148 | 148 | p2 = create_user('testuser2').person |
| 149 | 149 | |
| 150 | - Friendship.create!(:person => p1, :friend => p2) | |
| 150 | + p1.add_friend(p2) | |
| 151 | 151 | |
| 152 | 152 | assert_equal [p2], p1.friends |
| 153 | 153 | |
| 154 | 154 | p3 = create_user('testuser3').person |
| 155 | - Friendship.create!(:person => p1, :friend => p3) | |
| 155 | + p1.add_friend(p3) | |
| 156 | 156 | |
| 157 | 157 | assert_equal [p2,p3], p1.friends(true) # force reload |
| 158 | 158 | |
| ... | ... | @@ -174,10 +174,10 @@ class PersonTest < Test::Unit::TestCase |
| 174 | 174 | p2 = create_user('testuser2').person |
| 175 | 175 | p3 = create_user('testuser3').person |
| 176 | 176 | p4 = create_user('testuser4').person |
| 177 | - | |
| 178 | - Friendship.create!(:person => p1, :friend => p2, :group => 'group1') | |
| 179 | - Friendship.create!(:person => p1, :friend => p3, :group => 'group2') | |
| 180 | - Friendship.create!(:person => p1, :friend => p4, :group => 'group1') | |
| 177 | + | |
| 178 | + p1.add_friend(p2, 'group1') | |
| 179 | + p1.add_friend(p3, 'group2') | |
| 180 | + p1.add_friend(p4, 'group1') | |
| 181 | 181 | |
| 182 | 182 | assert_equivalent ['group1', 'group2'], p1.friend_groups |
| 183 | 183 | end | ... | ... |