Spelling mistake
[gitorious:mainline.git] / config / application.rb
1 # encoding: utf-8
2 #--
3 #   Copyright (C) 2012 Gitorious AS
4 #
5 #   This program is free software: you can redistribute it and/or modify
6 #   it under the terms of the GNU Affero General Public License as published by
7 #   the Free Software Foundation, either version 3 of the License, or
8 #   (at your option) any later version.
9 #
10 #   This program is distributed in the hope that it will be useful,
11 #   but WITHOUT ANY WARRANTY; without even the implied warranty of
12 #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 #   GNU Affero General Public License for more details.
14 #
15 #   You should have received a copy of the GNU Affero General Public License
16 #   along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 #++
18
19 require File.expand_path("../boot", __FILE__)
20 require "rails/all"
21
22 Bundler.require(:default, Rails.env) if defined?(Bundler)
23
24 module Gitorious
25   class Application < Rails::Application
26     config.autoload_paths += [config.root.join("lib")]
27     config.encoding = "utf-8"
28
29     # Settings in config/environments/* take precedence over those specified here.
30     # Application configuration should go into files in config/initializers
31     # -- all .rb files in that directory are automatically loaded.
32     # See Rails::Configuration for more options.
33
34     # Skip frameworks you're not going to use. To use Rails without a database
35     # you must remove the Active Record framework.
36     # config.frameworks -= [ :active_record, :active_resource, :action_mailer ]
37     config.filter_parameters += [:password, :password_confirmation]
38
39     # Only load the plugins named here, in the order given. By default, all plugins
40     # in vendor/plugins are loaded in alphabetical order.
41     # :all can be used as a placeholder for all plugins not explicitly named
42     # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
43
44     # Add additional load paths for your own custom dirs
45     config.autoload_paths << (Rails.root + "lib/gitorious").to_s
46     config.autoload_paths << (Rails.root + "app").to_s
47
48     # Avoid class cache errors like "A copy of Gitorious::XYZ has been removed
49     # from the module tree but is still active!"
50     config.autoload_once_paths << (Rails.root + "lib/gitorious").to_s
51
52     # Force all environments to use the same logger level
53     # (by default production uses :info, the others :debug)
54     # config.log_level = :debug
55
56     # Make Time.zone default to the specified zone, and make Active Record store time values
57     # in the database in UTC, and return them converted to the specified local zone.
58     # Run "rake -D time" for a list of tasks for finding time zone names. Comment line to use default local time.
59     config.time_zone = "UTC"
60
61     # The internationalization framework can be changed to have another default locale (standard is :en) or more load paths.
62     # All files from config/locales/*.rb,yml are added automatically.
63     # config.i18n.load_path << Dir[File.join(RAILS_ROOT, 'my', 'locales', '*.{rb,yml}')]
64     # config.i18n.default_locale = :de
65
66     # Your secret key for verifying cookie session data integrity.
67     # If you change this key, all old sessions will become invalid!
68     # Make sure the secret is at least 30 characters and all random,
69     # no regular words or you'll be exposed to dictionary attacks.
70
71     # Use the database for sessions instead of the cookie-based default,
72     # which shouldn't be used to store highly confidential information
73     # (create the session table with "rake db:sessions:create")
74     #config.action_controller.session_store = :active_record_store
75
76     # Use SQL instead of Active Record's schema dumper when creating the test database.
77     # This is necessary if your schema can't be completely dumped by the schema dumper,
78     # like if you have constraints or database-specific column types
79     # config.active_record.schema_format = :sql
80
81     # Activate observers that should always be running
82     # Please note that observers generated using script/generate observer need to have an _observer suffix
83     # config.active_record.observers = :cacher, :garbage_collector, :forum_observer
84
85     # Activate observers that should always be running
86     config.active_record.observers = [
87         :user_observer
88     ]
89
90     config.after_initialize do
91       OAuth::Consumer.class_eval {
92         remove_const(:CA_FILE) if const_defined?(:CA_FILE)
93       }
94
95       OAuth::Consumer::CA_FILE = nil
96       Gitorious::Plugin::post_load
97       Grit::Git.git_binary = GitoriousConfig["git_binary"]
98       Gitorious::SearchIndex.setup
99
100       require "gitorious/reservations"
101       Rails.application.reload_routes!
102       Repository.reserve_names(Gitorious::Reservations.repository_names)
103
104       # Set global locale
105       I18n.locale = I18n.default_locale = Gitorious::Configuration.get("locale", "en")
106
107       exception_recipients = Gitorious::Configuration.get("exception_recipients")
108       if Rails.env.production? && exception_recipients.blank?
109         puts "WARNING! No value set for exception_recipients in gitorious.yml."
110         puts "Will not be able to send email regarding unhandled exceptions"
111       else
112         Gitorious::Application.config.middleware.use(ExceptionNotifier, {
113           :email_prefix => "[Gitorious] ",
114           :sender_address => %{"Exception notifier" <notifier@gitorious>},
115           :exception_recipients => exception_recipients
116         })
117       end
118     end
119
120     # require (Rails.root + "app/middlewares/git_http_cloner.rb").realpath
121     # config.middleware.insert_before ActionDispatch::Cookies, ::GitHttpCloner
122   end
123 end