Merge head
authorJohn Dong <jdong@mit.edu>
Thu, 30 Aug 2007 23:13:09 +0000 (19:13 -0400)
committerJohn Dong <jdong@mit.edu>
Thu, 30 Aug 2007 23:13:09 +0000 (19:13 -0400)
1  2 
app/models/election.rb
config/environment.rb

diff --combined app/models/election.rb
index ce7a0bceaff624a73231b6892b6743b0a36bd5f7,7fa138ef4c433b4aafc239cd573aaf04a31bb8fb..99d64f93cc55424b34f82dac24d0dce9a1e4fc73
@@@ -23,7 -23,7 +23,7 @@@ class Election < ActiveRecord::Bas
  
    def other_methods
      if election_method
-       @other_methods = ELECTION_TYPES.reject {|i| i == election_method}
+       @other_methods = ELECTION_TYPES.keys.reject {|i| i == election_method}
      else
        @other_methods = nil
      end
      longdesc.length > 0 ? longdesc : nil 
    end
    
 -  #Calculate Election Results
 +  #Calculate results if not in memcache
    def results
 +    # Assignment is intentional
 +    if Cache and c = Cache.get("election_results:#{id}:#{self.votes.length}")
 +      @plurality_result = c['plurality']
 +      @approval_result = c['approval']
 +      @condorcet_result = c['condorcet']
 +      @ssd_result = c['ssd']
 +      @borda_result = c['borda']
 +      return c
 +    elsif Cache
 +      # memcache is available, but missed.
 +      results = self.results!
 +      Cache.set("election_results:#{id}:#{self.votes.length}", results)
 +      return results
 +    else
 +      return self.results!
 +    end
 +  end
 +
 +  #Always Calculate Election Results
 +  def results!
      # initalize the tallies to empty arrays
      preference_tally = Array.new
      plurality_tally = Array.new
      
      names
    end
 -  
  end
  
  
diff --combined config/environment.rb
index 2a7700951185f8eb71204f1210948ed156ec81a3,5ea9f103de256e61f44349285a358559b2b3a11c..fcabdd87aa6279b6003532259625536ac62e3fb3
@@@ -63,10 -63,15 +63,14 @@@ MAIL_CONFIG = { :from => 'Selectricity 
  
  require 'uniq_token'
  require 'randarray'
- require 'gruff'
+ require 'gruff-0.2.8/lib/gruff'
  require 'sparklines'
 -
  require 'rubyvote'
- ELECTION_TYPES = %w(ssd plurality approval condorcet borda)
+ ELECTION_TYPES = {'ssd' => "Schulze Sequential Dropping",
+                   'plurality' => "Plurality/First Past the Post",
+                   'approval' => "Approval (Top Two)",
+                   'condorcet' => "Simple Condorcet",
+                   'borda' => "Borda Count"}
  
  class String
    # alternate capitalization method that does not lowercase the rest of

Benjamin Mako Hill || Want to submit a patch?