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
self.verify_vote(vote)
end
- def filter_out(winner)
- @candidates.delete_if {|x| winner.winners.include?(x)}
- end
-
end
class PluralityVote < ElectionVote
class ElectionResult
attr_reader :winners
+ attr_reader :election
def initialize(voteobj=nil)
unless voteobj and voteobj.kind_of?( ElectionVote )
end
def winner?
- @winners.length > 0
+ @winners.length > 0 and not @winners[0].nil?
end
-
+
end
class PluralityResult < ElectionResult
attr_reader :ranked_candidates
-
+ attr_reader :points
+
def initialize(voteobj=nil)
super(voteobj)
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|