2010-01-23 16:30:17 -05:00
|
|
|
require 'rails/engine/configuration'
|
|
|
|
|
|
|
|
module Rails
|
|
|
|
class Application
|
|
|
|
class Configuration < ::Rails::Engine::Configuration
|
|
|
|
include ::Rails::Configuration::Deprecated
|
|
|
|
|
2010-02-01 05:40:27 -05:00
|
|
|
attr_accessor :allow_concurrency, :cache_classes, :cache_store, :colorize_logging,
|
2010-01-23 16:30:17 -05:00
|
|
|
:consider_all_requests_local, :dependency_loading,
|
|
|
|
:filter_parameters, :log_level, :logger, :metals,
|
2010-01-27 12:56:31 -05:00
|
|
|
:plugins, :preload_frameworks, :reload_engines, :reload_plugins,
|
2010-01-23 16:30:17 -05:00
|
|
|
:serve_static_assets, :time_zone, :whiny_nils
|
|
|
|
|
|
|
|
def initialize(*)
|
|
|
|
super
|
2010-02-01 05:40:27 -05:00
|
|
|
@allow_concurrency = false
|
2010-01-27 12:56:31 -05:00
|
|
|
@colorize_logging = true
|
2010-01-23 16:30:17 -05:00
|
|
|
@filter_parameters = []
|
|
|
|
@dependency_loading = true
|
|
|
|
@serve_static_assets = true
|
2010-01-27 12:56:31 -05:00
|
|
|
@time_zone = "UTC"
|
2010-02-01 05:40:27 -05:00
|
|
|
@consider_all_requests_local = true
|
2010-01-23 16:30:17 -05:00
|
|
|
end
|
|
|
|
|
|
|
|
def paths
|
|
|
|
@paths ||= begin
|
|
|
|
paths = super
|
|
|
|
paths.app.controllers << builtin_controller if builtin_controller
|
|
|
|
paths.config.database "config/database.yml"
|
2010-01-27 12:56:31 -05:00
|
|
|
paths.config.environment "config/environments", :glob => "#{Rails.env}.rb"
|
2010-01-23 16:30:17 -05:00
|
|
|
paths.log "log/#{Rails.env}.log"
|
|
|
|
paths.tmp "tmp"
|
|
|
|
paths.tmp.cache "tmp/cache"
|
|
|
|
paths.vendor "vendor", :load_path => true
|
|
|
|
paths.vendor.plugins "vendor/plugins"
|
|
|
|
|
|
|
|
if File.exists?("#{root}/test/mocks/#{Rails.env}")
|
|
|
|
ActiveSupport::Deprecation.warn "\"RAILS_ROOT/test/mocks/#{Rails.env}\" won't be added " <<
|
|
|
|
"automatically to load paths anymore in future releases"
|
|
|
|
paths.mocks_path "test/mocks", :load_path => true, :glob => Rails.env
|
|
|
|
end
|
|
|
|
|
|
|
|
paths
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
# Enable threaded mode. Allows concurrent requests to controller actions and
|
|
|
|
# multiple database connections. Also disables automatic dependency loading
|
|
|
|
# after boot, and disables reloading code on every request, as these are
|
|
|
|
# fundamentally incompatible with thread safety.
|
|
|
|
def threadsafe!
|
|
|
|
self.preload_frameworks = true
|
|
|
|
self.cache_classes = true
|
|
|
|
self.dependency_loading = false
|
2010-02-01 05:40:27 -05:00
|
|
|
self.allow_concurrency = true
|
2010-01-23 16:30:17 -05:00
|
|
|
self
|
|
|
|
end
|
|
|
|
|
|
|
|
# Loads and returns the contents of the #database_configuration_file. The
|
|
|
|
# contents of the file are processed via ERB before being sent through
|
|
|
|
# YAML::load.
|
|
|
|
def database_configuration
|
|
|
|
require 'erb'
|
|
|
|
YAML::load(ERB.new(IO.read(paths.config.database.to_a.first)).result)
|
|
|
|
end
|
|
|
|
|
|
|
|
def cache_store
|
|
|
|
@cache_store ||= begin
|
|
|
|
if File.exist?("#{root}/tmp/cache/")
|
|
|
|
[ :file_store, "#{root}/tmp/cache/" ]
|
|
|
|
else
|
|
|
|
:memory_store
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def builtin_controller
|
|
|
|
File.join(RAILTIES_PATH, "builtin", "rails_info") if Rails.env.development?
|
|
|
|
end
|
|
|
|
|
|
|
|
def log_level
|
|
|
|
@log_level ||= Rails.env.production? ? :info : :debug
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|