Fixed bug in Borda that was counting the votes incorrect very
authorBenjamin Mako Hill <mako@atdot.cc>
Tue, 14 Aug 2007 18:40:58 +0000 (18:40 +0000)
committerBenjamin Mako Hill <mako@atdot.cc>
Tue, 14 Aug 2007 18:40:58 +0000 (18:40 +0000)
frequently.  Thanks Justin Sharps!

git-svn-id: svn://rubyforge.org/var/svn/rubyvote/trunk@28 1440c7f4-e209-0410-9a04-881b5eb134a8

lib/rubyvote/positional.rb

index 11e8a499a9fdceb4a517677545017bb829af8cb8..3de3fb29ae6f20b0371eedacb41471ff73be279f 100644 (file)
@@ -42,7 +42,12 @@ class BordaVote < ElectionVote
   def tally_vote(vote)
     points = candidates.length - 1
     vote.each do |candidate|
-      @votes[candidate] = points
+      #if the candidate exist, add the points, otherwise assign them
+      if @votes.has_key?(candidate)
+        @votes[candidate] += points
+      else
+        @votes[candidate] = points
+      end
       points -= 1
     end
   end
@@ -58,6 +63,8 @@ class BordaVote < ElectionVote
 end
 
 class BordaResult < ElectionResult
+  attr_reader :ranked_candidates
+  
   def initialize(voteobj=nil)
     super(voteobj)
     votes = @election.votes

Benjamin Mako Hill || Want to submit a patch?