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 | ... | ... |