]> git.openstreetmap.org Git - rails.git/blobdiff - config/application.rb
Merge branch 'master' into openstreetbugs
[rails.git] / config / application.rb
index d257696fe6ad170e6018ed2f82c35401ad083a41..879f5714d560659e2ebb876f72f95d7dc4e8efc1 100644 (file)
@@ -2,11 +2,19 @@ require File.expand_path('../boot', __FILE__)
 
 require File.expand_path('../preinitializer', __FILE__)
 
+if STATUS == :database_offline
+require "action_controller/railtie"
+require "action_mailer/railtie"
+require "active_resource/railtie"
+require "sprockets/railtie"
+require "rails/test_unit/railtie"
+else
 require 'rails/all'
+end
 
 if defined?(Bundler)
   # If you precompile assets before deploying to production, use this line
-  Bundler.require *Rails.groups(:assets => %w(development test))
+  Bundler.require(*Rails.groups(:assets => %w(development test)))
   # If you want your assets lazily compiled in production, use this line
   # Bundler.require(:default, :assets, Rails.env)
 end
@@ -25,7 +33,9 @@ module OpenStreetMap
     # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
 
     # Activate observers that should always be running.
-    config.active_record.observers = :spam_observer
+    unless STATUS == :database_offline
+      config.active_record.observers = :spam_observer
+    end
 
     # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
     # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
@@ -41,15 +51,30 @@ module OpenStreetMap
     # Configure sensitive parameters which will be filtered from the log file.
     config.filter_parameters += [:password, :pass_crypt, :pass_crypt_confirmation]
 
+    # Use SQL instead of Active Record's schema dumper when creating the 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
+    unless STATUS == :database_offline
+      config.active_record.schema_format = :sql
+    end
+
+    # Enforce whitelist mode for mass assignment.
+    # This will create an empty whitelist of attributes available for mass-assignment for all models
+    # in your app. As such, your models will need to explicitly whitelist or blacklist accessible
+    # parameters by using an attr_accessible or attr_protected declaration.
+    unless STATUS == :database_offline
+      config.active_record.whitelist_attributes = true
+    end
+
     # Enable the asset pipeline
     config.assets.enabled = true
 
     # Version of your assets, change this if you want to expire all your assets
     config.assets.version = '1.0'
 
-    # 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
+    # Don't eager load models when the database is offline
+    if STATUS == :database_offline
+      config.paths["app/models"].skip_eager_load!
+    end
   end
 end