Recentemente, precisávamos de uma maneira de acelerar um processo para calcular o crescimento percentual por vários períodos (por exemplo, todas as semanas do ano). Celluloid – a biblioteca de atores Ruby – e seu futuro tornam isso fácil
(7..365).step(7).each do |d|
start_date = d.days.ago
end_date = (d - 7).days.ago
calc = GrowthCalculator.new(start_date, end_date)
#kick off the calculation and continue execution
growth = calc.future.percent_growth
results << { name: "Growth %", percent: growth }
end
# "realize" the value of the future
results.each {|r| r[:percent] = r[:percent].value}