def get_all_friends(uid, client)
friends = client.friendships.friends(uid: uid)
total = friends.total_number
get_friends(total, 0, uid, client)
end
def get_friends(total, cursor, uid, client)
left = total
count = [200, left].min
friends = client.friendships.friends(uid: uid, count: count, cursor: cursor)
left -= count
next_cursor = friends.next_cursor
return friends if (left == 0 || next_cursor == 0)
more_firends = get_friends(left, next_cursor, uid, client)
more_firends.users << friends.users
return more_firends
end
get_all_friends(uid, observer.client).users.map do |info|
user = User.find_or_create_by_uid_and_name(uid: info.id, name: info.name)
follow(user)
user
end
This code is written in a functional style. Maybe there is a more natural way to structure it with Block.
And how can I reuse the code when client.friendships.friends(uid: uid, count: count, cursor: cursor)
differs?