projects
/
rubyvote
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added get_full_results method that returns a ranked list of candidates.
[rubyvote]
/
lib
/
rubyvote
/
election.rb
diff --git
a/lib/rubyvote/election.rb
b/lib/rubyvote/election.rb
index 7fd8396c046d9b71fd09c75e2f35866ddbe5cf97..4499233ebb0bda4e0f305c6a853bbbf7c96ed454 100644
(file)
--- a/
lib/rubyvote/election.rb
+++ b/
lib/rubyvote/election.rb
@@
-61,6
+61,16
@@
class ElectionVote
def tally_vote
self.verify_vote(vote)
end
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
end
class PluralityVote < ElectionVote
@@
-109,6
+119,7
@@
end
class ElectionResult
attr_reader :winners
class ElectionResult
attr_reader :winners
+ attr_accessor :full_results
def initialize(voteobj=nil)
unless voteobj and voteobj.kind_of?( ElectionVote )
def initialize(voteobj=nil)
unless voteobj and voteobj.kind_of?( ElectionVote )
@@
-117,6
+128,7
@@
class ElectionResult
@election = voteobj
@winners = Array.new
@election = voteobj
@winners = Array.new
+ @full_results = Array.new
end
def winner
end
def winner
@@
-127,6
+139,10
@@
class ElectionResult
@winners.length > 0
end
@winners.length > 0
end
+ def get_full_results
+ @full_results.collect {|x| x.winners}
+ end
+
end
class PluralityResult < ElectionResult
end
class PluralityResult < ElectionResult
Benjamin Mako Hill
||
Want to submit a patch?