communities_block.rb
560 Bytes
class CommunitiesBlock < ProfileListBlock
def self.description
_('A block that displays your communities')
end
def title
_('Communities')
end
def profile_finder
@profile_finder ||= CommunitiesBlock::Finder.new(self)
end
class Finder < ProfileListBlock::Finder
def find
ids = block.owner.community_memberships.map(&:id)
result = []
[block.limit, ids.size].min.times do
i = pick_random(ids.size)
result << Profile.find(ids[i])
ids.delete_at(i)
end
result
end
end
end