1 # Be sure to restart your web server when you modify this file.
3 # Uncomment below to force Rails into production mode when
4 # you don't control web/app server and can't set it the proper way
5 # ENV['RAILS_ENV'] ||= 'production'
7 # Specifies gem version of Rails to use when vendor/rails is not present
8 RAILS_GEM_VERSION = '1.2.3' unless defined? RAILS_GEM_VERSION
10 # Bootstrap the Rails environment, frameworks, and default configuration
11 require File.join(File.dirname(__FILE__), 'boot')
13 Rails::Initializer.run do |config|
14 # Settings in config/environments/* take precedence over those specified here
16 # Skip frameworks you're not going to use (only works if using vendor/rails)
17 # config.frameworks -= [ :action_web_service, :action_mailer ]
19 # Only load the plugins named here, by default all plugins in vendor/plugins are loaded
20 # config.plugins = %W( exception_notification ssl_requirement )
22 # Add additional load paths for your own custom dirs
23 # config.load_paths += %W( #{RAILS_ROOT}/extras )
25 # Force all environments to use the same logger level
26 # (by default production uses :info, the others :debug)
27 # config.log_level = :debug
29 # Use the database for sessions instead of the file system
30 # (create the session table with 'rake db:sessions:create')
31 config.action_controller.session_store = :active_record_store
33 # Use SQL instead of Active Record's schema dumper when creating the test database.
34 # This is necessary if your schema can't be completely dumped by the schema dumper,
35 # like if you have constraints or database-specific column types
36 # config.active_record.schema_format = :sql
38 # Activate observers that should always be running
39 # config.active_record.observers = :cacher, :garbage_collector
41 # Make Active Record use UTC-base instead of local time
42 # config.active_record.default_timezone = :utc
44 # See Rails::Configuration for more options
47 # Add new inflection rules using the following format
48 # (all these examples are active by default):
49 # Inflector.inflections do |inflect|
50 # inflect.plural /^(ox)$/i, '\1en'
51 # inflect.singular /^(ox)en/i, '\1'
52 # inflect.irregular 'person', 'people'
53 # inflect.uncountable %w( fish sheep )
56 # Add new mime types for use in respond_to blocks:
57 # Mime::Type.register "text/richtext", :rtf
58 # Mime::Type.register "application/x-mobile", :mobile
60 # Include your application configuration below
62 MAIL_CONFIG = { :from => 'Selectricity <info@selectricity.org>'}
66 require 'gruff-0.2.8/lib/gruff'
69 ELECTION_TYPES = {'ssd' => "Schulze Method",
70 'plurality' => "Plurality",
71 'approval' => "Approval",
72 'condorcet' => "Condorcet",
73 'borda' => "Borda Count"}
76 # alternate capitalization method that does not lowercase the rest of
77 # the string -- which is almost never what I want
82 self.split(//)[0].upcase + self.split(//)[1..-1].join("")
86 # capitalize each word in a string unless it is specialcased word
88 words = %w{a the in to for an}
89 self.split.collect {|s| words.include?(s) ? s : s.capitalize }.join(" ")
93 #Change the session store key, so that it will not conflict with other webapps
94 ActionController::Base.session_options[:session_key] = 'selectricity_session_id'
95 CGI::Session.expire_after 1.year
97 # action mailer configuration
98 ActionMailer::Base.delivery_method = :sendmail
99 ActionMailer::Base.default_charset = "utf-8"
101 # These defaults are used in GeoKit::Mappable.distance_to and in acts_as_mappable
102 GeoKit::default_units = :miles
103 GeoKit::default_formula = :sphere
105 # This is the timeout value in seconds to be used for calls to the geocoder web
106 # services. For no timeout at all, comment out the setting. The timeout unit
108 GeoKit::Geocoders::timeout = 3
110 # These settings are used if web service calls must be routed through a proxy.
111 # These setting can be nil if not needed, otherwise, addr and port must be
112 # filled in at a minimum. If the proxy requires authentication, the username
113 # and password can be provided as well.
114 GeoKit::Geocoders::proxy_addr = nil
115 GeoKit::Geocoders::proxy_port = nil
116 GeoKit::Geocoders::proxy_user = nil
117 GeoKit::Geocoders::proxy_pass = nil
119 # This is your yahoo application key for the Yahoo Geocoder.
120 # See http://developer.yahoo.com/faq/index.html#appid
121 # and http://developer.yahoo.com/maps/rest/V1/geocode.html
122 GeoKit::Geocoders::yahoo = 'REPLACE_WITH_YOUR_YAHOO_KEY'
124 # This is your Google Maps geocoder key.
125 # See http://www.google.com/apis/maps/signup.html
126 # and http://www.google.com/apis/maps/documentation/#Geocoding_Examples
127 GeoKit::Geocoders::google = 'REPLACE_WITH_YOUR_GOOGLE_KEY'
129 # This is your username and password for geocoder.us.
130 # To use the free service, the value can be set to nil or false. For
131 # usage tied to an account, the value should be set to username:password.
132 # See http://geocoder.us
133 # and http://geocoder.us/user/signup
134 GeoKit::Geocoders::geocoder_us = false
136 # This is your authorization key for geocoder.ca.
137 # To use the free service, the value can be set to nil or false. For
138 # usage tied to an account, set the value to the key obtained from
140 # See http://geocoder.ca
141 # and http://geocoder.ca/?register=1
142 GeoKit::Geocoders::geocoder_ca = false
144 # This is the order in which the geocoders are called in a failover scenario
145 # If you only want to use a single geocoder, put a single symbol in the array.
146 # Valid symbols are :google, :yahoo, :us, and :ca.
147 # Be aware that there are Terms of Use restrictions on how you can use the
148 # various geocoders. Make sure you read up on relevant Terms of Use for each
149 # geocoder you are going to use.
150 GeoKit::Geocoders::provider_order = [:google,:us]