Fix broken Plurality vote by removing a type check in RubyVote. TODO: Figure out...
[selectricity] / lib / rubyvote / election.rb
index 7fd8396c046d9b71fd09c75e2f35866ddbe5cf97..66e4c2a4b410b83a2af50d12172e64c644cc531a 100644 (file)
@@ -34,7 +34,7 @@
 class ElectionVote
   attr_reader :votes
   attr_reader :candidates
-
+  
   def initialize(votes=nil)
     @votes = Hash.new unless defined?(@votes)
     @candidates = Array.new unless defined?(@candidates)
@@ -61,6 +61,11 @@ class ElectionVote
   def tally_vote
     self.verify_vote(vote)
   end
+
+  def filter_out(winner)
+    @candidates.delete_if {|x| winner.winners.include?(x)}
+  end
+
 end
 
 class PluralityVote < ElectionVote
@@ -70,7 +75,7 @@ class PluralityVote < ElectionVote
   
   protected
   def verify_vote(vote=nil)
-    vote.instance_of?( String )
+    not vote.instance_of?( Array )
   end
 
   def tally_vote(candidate)
@@ -109,7 +114,8 @@ end
 
 class ElectionResult
   attr_reader :winners
-
+  attr_reader :election
+  
   def initialize(voteobj=nil)
     unless voteobj and voteobj.kind_of?( ElectionVote )
       raise ArgumentError, "You must pass a ElectionVote array.", caller

Benjamin Mako Hill || Want to submit a patch?