]> projects.mako.cc - selectricity-live/blobdiff - lib/rubyvote/election.rb
scrollbar appears if two many electons on control panel. ooks pretty nasty.
[selectricity-live] / lib / rubyvote / election.rb
index b9bb5574c7ea03b4d9d5d6e1b544fdca640e3ee3..3655a034e7575d7be3541ab49e1be12a80fb0c17 100644 (file)
@@ -45,7 +45,7 @@ class ElectionVote
           if self.verify_vote(vote)
             self.tally_vote(vote)
           else
           if self.verify_vote(vote)
             self.tally_vote(vote)
           else
-            raise InvalidVoteError.new ("Invalid vote object", vote)
+            raise InvalidVoteError.new("Invalid vote object", vote)
           end
         end
       else
           end
         end
       else
@@ -66,10 +66,6 @@ class ElectionVote
     self.verify_vote(vote)
   end
 
     self.verify_vote(vote)
   end
 
-  def filter_out(winner)
-    @candidates.delete_if {|x| winner.winners.include?(x)}
-  end
-
 end
 
 class PluralityVote < ElectionVote
 end
 
 class PluralityVote < ElectionVote
@@ -118,6 +114,7 @@ end
 
 class ElectionResult
   attr_reader :winners
 
 class ElectionResult
   attr_reader :winners
+  attr_reader :election
 
   def initialize(voteobj=nil)
     unless voteobj and voteobj.kind_of?( ElectionVote )
 
   def initialize(voteobj=nil)
     unless voteobj and voteobj.kind_of?( ElectionVote )
@@ -133,14 +130,15 @@ class ElectionResult
   end
 
   def winner?
   end
 
   def winner?
-    @winners.length > 0
+    @winners.length > 0 and not @winners[0].nil?
   end
   end
-
+  
 end
 
 class PluralityResult < ElectionResult
   attr_reader :ranked_candidates
 end
 
 class PluralityResult < ElectionResult
   attr_reader :ranked_candidates
-
+  attr_reader :points
+  
   def initialize(voteobj=nil)
     super(voteobj)
 
   def initialize(voteobj=nil)
     super(voteobj)
 
@@ -151,6 +149,8 @@ class PluralityResult < ElectionResult
       b[1] <=> a[1]
     end.collect {|a| a[0]}
     
       b[1] <=> a[1]
     end.collect {|a| a[0]}
     
+    @points = @election.votes
+    
     # winners are anyone who has the same number of votes as the
     # first person
     @winners = @ranked_candidates.find_all do |i|
     # winners are anyone who has the same number of votes as the
     # first person
     @winners = @ranked_candidates.find_all do |i|

Benjamin Mako Hill || Want to submit a patch?