aboutsummaryrefslogtreecommitdiffstats
path: root/config/initializers/alaveteli.rb
diff options
context:
space:
mode:
Diffstat (limited to 'config/initializers/alaveteli.rb')
-rw-r--r--config/initializers/alaveteli.rb161
1 files changed, 161 insertions, 0 deletions
diff --git a/config/initializers/alaveteli.rb b/config/initializers/alaveteli.rb
new file mode 100644
index 000000000..61df79434
--- /dev/null
+++ b/config/initializers/alaveteli.rb
@@ -0,0 +1,161 @@
+if RUBY_VERSION.to_f >= 1.9
+ # the default encoding for IO is utf-8, and we use utf-8 internally
+ Encoding.default_external = Encoding.default_internal = Encoding::UTF_8
+ # Suppress warning messages and require inflector to avoid iconv deprecation message
+ # "iconv will be deprecated in the future, use String#encode instead." when loading
+ # it as part of rails
+ original_verbose, $VERBOSE = $VERBOSE, nil
+ require 'active_support/inflector'
+ # Activate warning messages again.
+ $VERBOSE = original_verbose
+end
+
+# Uncomment below to force Rails into production mode when
+# you don't control web/app server and can't set it the proper way
+# ENV['RAILS_ENV'] ||= 'production'
+
+# Specifies gem version of Rails to use when vendor/rails is not present
+RAILS_GEM_VERSION = '2.3.14' unless defined? RAILS_GEM_VERSION
+
+# Bootstrap the Rails environment, frameworks, and default configuration
+require File.join(File.dirname(__FILE__), 'boot')
+
+# MySociety specific helper functions
+$:.push(File.join(File.dirname(__FILE__), '../commonlib/rblib'))
+# ... if these fail to include, you need the commonlib submodule from git
+# (type "git submodule update --init" in the whatdotheyknow directory)
+
+$:.unshift(File.join(File.dirname(__FILE__), '../vendor/plugins/globalize2/lib'))
+
+load "validate.rb"
+load "config.rb"
+load "format.rb"
+load "debug_helpers.rb"
+load "util.rb"
+# Patch Rails::GemDependency to cope with older versions of rubygems, e.g. in Debian Lenny
+# Restores override removed in https://github.com/rails/rails/commit/c20a4d18e36a13b5eea3155beba36bb582c0cc87
+# without effecting method behaviour
+# and adds fallback gem call removed in https://github.com/rails/rails/commit/4c3725723f15fab0a424cb1318b82b460714b72f
+require File.join(File.dirname(__FILE__), '../lib/old_rubygems_patch')
+require 'configuration'
+
+# Application version
+ALAVETELI_VERSION = '0.6.8'
+
+Rails::Initializer.run do |config|
+ # Load intial mySociety config
+ if ENV["RAILS_ENV"] == "test"
+ MySociety::Config.set_file(File.join(config.root_path, 'config', 'test'), true)
+ else
+ MySociety::Config.set_file(File.join(config.root_path, 'config', 'general'), true)
+ end
+ MySociety::Config.load_default
+
+ # Settings in config/environments/* take precedence over those specified here
+
+ # Skip frameworks you're not going to use (only works if using vendor/rails)
+ # config.frameworks -= [ :action_web_service, :action_mailer ]
+
+ # Only load the plugins named here, by default all plugins in vendor/plugins are loaded
+ # config.plugins = %W( exception_notification ssl_requirement )
+
+ # Add additional load paths for your own custom dirs
+ # config.load_paths += %W( #{Rails.root}/extras )
+
+ # Force all environments to use the same logger level
+ # (by default production uses :info, the others :debug)
+ # TEMP: uncomment this to turn on logging in production environments
+ # config.log_level = :debug
+ #
+ # Specify gems that this application depends on and have them installed with rake gems:install
+ #GettextI18nRails.translations_are_html_safe = true
+
+ # Use SQL instead of Active Record's schema dumper when creating the test database.
+ # This is necessary if your schema can't be completely dumped by the schema dumper,
+ # like if you have constraints or database-specific column types
+ config.active_record.schema_format = :sql
+
+ # Activate observers that should always be running
+ # config.active_record.observers = :cacher, :garbage_collector
+
+ # Make Active Record use UTC-base instead of local time
+ config.active_record.default_timezone = :utc
+
+ # This is the timezone that times and dates are displayed in
+ # Note that having set a zone, the Active Record
+ # time_zone_aware_attributes flag is on, so times from models
+ # will be in this time zone
+ config.time_zone = Configuration::time_zone
+
+ config.after_initialize do
+ require 'routing_filters.rb'
+ end
+
+ config.autoload_paths << "#{RAILS_ROOT}/lib/mail_handler"
+
+ # See Rails::Configuration for more options
+ ENV['RECAPTCHA_PUBLIC_KEY'] = Configuration::recaptcha_public_key
+ ENV['RECAPTCHA_PRIVATE_KEY'] = Configuration::recaptcha_private_key
+end
+
+# Add new inflection rules using the following format
+# (all these examples are active by default):
+# Inflector.inflections do |inflect|
+# inflect.plural /^(ox)$/i, '\1en'
+# inflect.singular /^(ox)en/i, '\1'
+# inflect.irregular 'person', 'people'
+# inflect.uncountable %w( fish sheep )
+# end
+
+# Add new mime types for use in respond_to blocks:
+# Mime::Type.register "text/richtext", :rtf
+# Mime::Type.register "application/x-mobile", :mobile
+
+# The Rails cache is set up by the Interlock plugin to use memcached
+
+# Domain for URLs (so can work for scripts, not just web pages)
+ActionMailer::Base.default_url_options[:host] = Configuration::domain
+
+# So that javascript assets use full URL, so proxied admin URLs read javascript OK
+if (Configuration::domain != "")
+ ActionController::Base.asset_host = Proc.new { |source, request|
+ if ENV["RAILS_ENV"] != "test" && request.fullpath.match(/^\/admin\//)
+ Configuration::admin_public_url
+ else
+ Configuration::domain
+ end
+ }
+end
+
+# fallback locale and available locales
+available_locales = Configuration::available_locales.split(/ /)
+default_locale = Configuration::default_locale
+
+FastGettext.default_available_locales = available_locales
+I18n.locale = default_locale
+I18n.available_locales = available_locales.map {|locale_name| locale_name.to_sym}
+I18n.default_locale = default_locale
+
+# Customise will_paginate URL generation
+WillPaginate::ViewHelpers.pagination_options[:renderer] = 'WillPaginateExtension::LinkRenderer'
+
+# Load monkey patches and other things from lib/
+require 'ruby19.rb'
+require 'activesupport_cache_extensions.rb'
+require 'timezone_fixes.rb'
+require 'use_spans_for_errors.rb'
+require 'make_html_4_compliant.rb'
+require 'activerecord_errors_extensions.rb'
+require 'willpaginate_extension.rb'
+require 'sendmail_return_path.rb'
+require 'i18n_fixes.rb'
+require 'rack_quote_monkeypatch.rb'
+require 'world_foi_websites.rb'
+require 'alaveteli_external_command.rb'
+require 'quiet_opener.rb'
+require 'mail_handler'
+
+if !Configuration.exception_notifications_from.blank? && !Configuration.exception_notifications_to.blank?
+ ExceptionNotification::Notifier.sender_address = Configuration::exception_notifications_from
+ ExceptionNotification::Notifier.exception_recipients = Configuration::exception_notifications_to
+end