Class: ActsAsCalculator::DistributeRemainder

Inherits:
Object
  • Object
show all
Defined in:
lib/acts_as_calculator/distribute_remainder.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(amount:, weights:, precision: Apportionment::DEFAULT_PRECISION) ⇒ DistributeRemainder

Returns a new instance of DistributeRemainder.



11
12
13
14
15
# File 'lib/acts_as_calculator/distribute_remainder.rb', line 11

def initialize(amount:, weights:, precision: Apportionment::DEFAULT_PRECISION)
  @amount = amount
  @weights = weights
  @precision = precision
end

Class Method Details

.callObject



7
8
9
# File 'lib/acts_as_calculator/distribute_remainder.rb', line 7

def self.call(...)
  new(...).call
end

Instance Method Details

#callObject



17
18
19
20
21
# File 'lib/acts_as_calculator/distribute_remainder.rb', line 17

def call
  shares = floors.dup
  priority.first(leftover_units).each { |index| shares[index] += unit }
  shares
end