]> projects.mako.cc - selectricity-live/blobdiff - lib/rubyvote/election.rb
Added the choices position and get_posititons_info to graph controller. Right now...
[selectricity-live] / lib / rubyvote / election.rb
index fc61840a8aec6172d498345b2b387f79bf4795ce..75614e6b6d294995fb53cb7de45b5daf35884de2 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 ? true : false
+    vote.instance_of?( String )
   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?