Missed a now unnecessary assignment to @candidates in #tally_votes
[rubyvote] / lib / rubyvote / condorcet.rb
index f4ed7b74be0e7a9ec79d1ffe20f61fcfcab97ed2..96a103bd479c5bcf3e7d575cacd5d71f4afe8f78 100644 (file)
 
 class CondorcetVote < ElectionVote
 
+  def initialize(votes=nil)
+    unless defined?(@candidates)
+      @candidates = Array.new
+      votes.each do |vote_row|
+        vote_row = vote_row.flatten if vote_row.class == Array
+        vote_row.each do |vote| 
+          @candidates << vote unless @candidates.include?(vote)
+        end
+      end
+    end
+    super(votes)
+  end
+
   def tally_vote(vote=nil)
 
     vote.each_with_index do |winner, index|
@@ -63,13 +76,8 @@ class CondorcetVote < ElectionVote
 
           # make sure we have a comparable object
           @votes[loser][winner] = 0 unless @votes[loser].has_key?( winner )
-
-          @candidates << loser unless @candidates.include?( loser )
         end
       end
-
-      @candidates << winner unless @candidates.include?( winner ) || 
-        winner.class == Array
     end
   end
 

Benjamin Mako Hill || Want to submit a patch?