+ELECTION_TYPES = {'ssd' => "Schulze Method",
+ 'plurality' => "Plurality",
+ 'approval' => "Approval",
+ 'condorcet' => "Condorcet",
+ 'borda' => "Borda Count"}
+
+class String
+ # alternate capitalization method that does not lowercase the rest of
+ # the string -- which is almost never what I want
+ def capitalize
+ if self.length <= 1
+ self.upcase
+ else
+ self.split(//)[0].upcase + self.split(//)[1..-1].join("")
+ end
+ end
+
+ # capitalize each word in a string unless it is specialcased word
+ def titlecase
+ words = %w{a the in to for an}
+ self.split.collect {|s| words.include?(s) ? s : s.capitalize }.join(" ")
+ end
+end
+
+#Change the session store key, so that it will not conflict with other webapps
+ActionController::Base.session_options[:session_key] = 'selectricity_session_id'
+CGI::Session.expire_after 1.year
+
+# action mailer configuration
+ActionMailer::Base.delivery_method = :sendmail
+ActionMailer::Base.default_charset = "utf-8"
+
+# These defaults are used in GeoKit::Mappable.distance_to and in acts_as_mappable
+GeoKit::default_units = :miles
+GeoKit::default_formula = :sphere
+
+# This is the timeout value in seconds to be used for calls to the geocoder web
+# services. For no timeout at all, comment out the setting. The timeout unit
+# is in seconds.
+GeoKit::Geocoders::timeout = 3
+
+# These settings are used if web service calls must be routed through a proxy.
+# These setting can be nil if not needed, otherwise, addr and port must be
+# filled in at a minimum. If the proxy requires authentication, the username
+# and password can be provided as well.
+GeoKit::Geocoders::proxy_addr = nil
+GeoKit::Geocoders::proxy_port = nil
+GeoKit::Geocoders::proxy_user = nil
+GeoKit::Geocoders::proxy_pass = nil
+
+# This is your yahoo application key for the Yahoo Geocoder.
+# See http://developer.yahoo.com/faq/index.html#appid
+# and http://developer.yahoo.com/maps/rest/V1/geocode.html
+GeoKit::Geocoders::yahoo = 'REPLACE_WITH_YOUR_YAHOO_KEY'
+
+# This is your Google Maps geocoder key.
+# See http://www.google.com/apis/maps/signup.html
+# and http://www.google.com/apis/maps/documentation/#Geocoding_Examples
+GeoKit::Geocoders::google = 'REPLACE_WITH_YOUR_GOOGLE_KEY'
+
+# This is your username and password for geocoder.us.
+# To use the free service, the value can be set to nil or false. For
+# usage tied to an account, the value should be set to username:password.
+# See http://geocoder.us
+# and http://geocoder.us/user/signup
+GeoKit::Geocoders::geocoder_us = false
+
+# This is your authorization key for geocoder.ca.
+# To use the free service, the value can be set to nil or false. For
+# usage tied to an account, set the value to the key obtained from
+# Geocoder.ca.
+# See http://geocoder.ca
+# and http://geocoder.ca/?register=1
+GeoKit::Geocoders::geocoder_ca = false
+
+# This is the order in which the geocoders are called in a failover scenario
+# If you only want to use a single geocoder, put a single symbol in the array.
+# Valid symbols are :google, :yahoo, :us, and :ca.
+# Be aware that there are Terms of Use restrictions on how you can use the
+# various geocoders. Make sure you read up on relevant Terms of Use for each
+# geocoder you are going to use.
+GeoKit::Geocoders::provider_order = [:google,:us]
+
+# fix major security vulnerability:
+# https://groups.google.com/forum/#!topic/rubyonrails-security/61bkgvnSGTQ/discussion
+ActionController::Base.param_parsers.delete(Mime::XML)