diff --git a/lib/money/money/allocation.rb b/lib/money/money/allocation.rb index efd0a431f9..1616e2d029 100644 --- a/lib/money/money/allocation.rb +++ b/lib/money/money/allocation.rb @@ -35,9 +35,9 @@ def self.generate(amount, parts, whole_amounts = true) result = [] remaining_amount = amount - + parts_sum = parts.sum + until parts.empty? do - parts_sum = parts.inject(0, :+) part = parts.pop current_split = 0 @@ -48,6 +48,7 @@ def self.generate(amount, parts, whole_amounts = true) result.unshift current_split remaining_amount -= current_split + parts_sum -= part end result