Module: Equalshares::Compute

Defined in:
lib/equalshares/compute.rb

Overview

Facade for the Method of Equal Shares. Delegates to the rule objects: cardinal ballots (per-voter utilities) go to Rules::CardinalMes, approval ballots to Rules::MethodOfEqualShares (with the equalshares.net completion/comparison steps).

Class Method Summary collapse

Class Method Details

.equal_shares(instance, params = Params.new, progress: nil) ⇒ Object

Returns { winners: Array, notes: Hash }.



11
12
13
14
15
16
17
# File 'lib/equalshares/compute.rb', line 11

def equal_shares(instance, params = Params.new, progress: nil)
  if instance.cardinal?
    Rules::CardinalMes.call(instance, params, progress: progress)
  else
    Rules::MethodOfEqualShares.call(instance, params, progress: progress)
  end
end