Commit bb6b09d4f6b634ca27e0eb837b431556f643b425
1 parent
f4a1a6b0
Exists in
master
and in
29 other branches
ActionItem43: supporting non-class finders
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1347 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
2 changed files
with
17 additions
and
2 deletions
Show diff stats
app/models/profile_list_block.rb
... | ... | @@ -24,7 +24,13 @@ class ProfileListBlock < Block |
24 | 24 | |
25 | 25 | def profiles |
26 | 26 | # FIXME pick random people instead |
27 | - profile_finder.find(:all, :limit => self.limit, :order => 'created_at desc') | |
27 | + finder = profile_finder | |
28 | + options = { :limit => self.limit, :order => 'created_at desc' } | |
29 | + if finder.is_a?(Class) | |
30 | + finder.find(:all, options) | |
31 | + else | |
32 | + finder.find(options) | |
33 | + end | |
28 | 34 | end |
29 | 35 | |
30 | 36 | def random(top) | ... | ... |
test/unit/profile_list_block_test.rb
... | ... | @@ -47,7 +47,15 @@ class ProfileListBlockTest < Test::Unit::TestCase |
47 | 47 | should 'ask profile finder for profiles' do |
48 | 48 | block = ProfileListBlock.new |
49 | 49 | block.expects(:profile_finder).returns(Profile).once |
50 | - Profile.expects(:find).returns([]) | |
50 | + Profile.expects(:find).with(:all, is_a(Hash)).returns([]) | |
51 | + block.profiles | |
52 | + end | |
53 | + | |
54 | + should 'support non-class finders' do | |
55 | + block = ProfileListBlock.new | |
56 | + profile = create_user('mytestuser').person | |
57 | + block.expects(:profile_finder).returns(profile.members).once | |
58 | + profile.members.expects(:find).with(is_a(Hash)).once | |
51 | 59 | block.profiles |
52 | 60 | end |
53 | 61 | |
... | ... | @@ -58,4 +66,5 @@ class ProfileListBlockTest < Test::Unit::TestCase |
58 | 66 | ProfileListBlock.new.random(77) |
59 | 67 | end |
60 | 68 | |
69 | + | |
61 | 70 | end | ... | ... |