Added get_full_results method that returns a ranked list of candidates.
[rubyvote] / lib / rubyvote / election.rb
index 7fd8396..4499233 100644 (file)
@@ -61,6 +61,16 @@ class ElectionVote
   def tally_vote
     self.verify_vote(vote)
   end
+
+  def filter_out(winner)
+    if winner.winners[0].class == Array
+      to_filter = winner.winners[0]
+    else
+      to_filter = [winner.winners[0]]
+    end
+    @candidates.delete_if {|x| to_filter.include?(x)}
+  end
+
 end
 
 class PluralityVote < ElectionVote
@@ -109,6 +119,7 @@ end
 
 class ElectionResult
   attr_reader :winners
+  attr_accessor :full_results
 
   def initialize(voteobj=nil)
     unless voteobj and voteobj.kind_of?( ElectionVote )
@@ -117,6 +128,7 @@ class ElectionResult
 
     @election = voteobj
     @winners = Array.new
+    @full_results = Array.new
   end
 
   def winner
@@ -127,6 +139,10 @@ class ElectionResult
     @winners.length > 0
   end
 
+  def get_full_results
+    @full_results.collect {|x| x.winners}
+  end
+
 end
 
 class PluralityResult < ElectionResult

Benjamin Mako Hill || Want to submit a patch?