Module: Apportion
- Defined in:
- lib/apportion.rb,
lib/apportion/util.rb,
lib/apportion/setup.rb,
lib/apportion/version.rb,
lib/apportion/algorithm/equal_proportions.rb
Overview
Top level interface, or API, to distribute a quantity among recipients
Defined Under Namespace
Modules: Algorithm, Setup, Util
Constant Summary collapse
- VERSION =
'0.0.2'
Class Method Summary collapse
-
.division(weights, size, options = {}) ⇒ Hash
Distributes a quantity among recipients by dividing proportionally according to relative weights using the ‘equal proportions’ algorithm.
Class Method Details
.division(weights, size, options = {}) ⇒ Hash
Distributes a quantity among recipients by dividing proportionally according to relative weights using the ‘equal proportions’ algorithm
22 23 24 25 26 27 |
# File 'lib/apportion.rb', line 22 def division(weights, size, = {}) portions = Setup.initial_portions(weights.keys, ) sum_portions = Util.hash_values_sum(portions) Setup.validate(size, sum_portions) next_step(weights, portions, sum_portions, size) end |