Сокращение кода перечисления - PullRequest
0 голосов
/ 08 сентября 2011

Каков краткий способ сделать это в Ruby?Я просто хочу подождать, пока все объекты не будут запущены.Это кажется слишком многословным.

# arr contains objects that respond to running?
all_running = false
until all_running
    sleep 0.5
    all_running = true
    arr.each{ |obj|
        all_running = all_running and obj.running?
    }

end

Ответы [ 2 ]

6 голосов
/ 08 сентября 2011
sleep 0.5 until arr.all? &:running?
0 голосов
/ 08 сентября 2011

Как насчет

sleep(0.5) until arr.inject(true) { |all_running, obj| all_running and obj.running? }

...