Class: Rails::Configuration
Overview
The Configuration class holds all the parameters for the Initializer and ships with defaults that suites most Rails applications. But it’s possible to overwrite everything. Usually, you’ll create an Configuration file implicitly through the block running on the Initializer, but it’s also possible to create the Configuration instance in advance and pass it in like this:
config = Rails::Configuration.new
Rails::Initializer.run(:process, config)
Instance Attribute Summary collapse
-
#action_controller ⇒ Object
A stub for setting options on ActionController::Base.
-
#action_mailer ⇒ Object
A stub for setting options on ActionMailer::Base.
-
#action_view ⇒ Object
A stub for setting options on ActionView::Base.
-
#action_web_service ⇒ Object
A stub for setting options on ActionWebService::Base.
-
#active_record ⇒ Object
A stub for setting options on ActiveRecord::Base.
-
#breakpoint_server ⇒ Object
Whether or not to use the breakpoint server (boolean).
-
#cache_classes ⇒ Object
Whether or not classes should be cached (set to false if you want application classes to be reloaded on each request).
-
#connection_adapters ⇒ Object
The list of connection adapters to load.
-
#controller_paths ⇒ Object
The list of paths that should be searched for controllers.
-
#database_configuration_file ⇒ Object
The path to the database configuration file to use.
-
#frameworks ⇒ Object
The list of rails framework components that should be loaded.
-
#load_once_paths ⇒ Object
An array of paths from which Rails will automatically load from only once.
-
#load_paths ⇒ Object
An array of additional paths to prepend to the load path.
-
#log_level ⇒ Object
The log level to use for the default Rails logger.
-
#log_path ⇒ Object
The path to the log file to use.
-
#logger ⇒ Object
The specific logger to use.
-
#plugin_paths ⇒ Object
The path to the root of the plugins directory.
-
#plugins ⇒ Object
The list of plugins to load.
-
#root_path ⇒ Object
readonly
The application’s base directory.
-
#view_path ⇒ Object
The root of the application’s views.
-
#whiny_nils ⇒ Object
Set to
true
if you want to be warned (noisily) when you try to invoke any method ofnil
.
Instance Method Summary collapse
-
#after_initialize(&after_initialize_block) ⇒ Object
Sets a block which will be executed after rails has been fully initialized.
-
#after_initialize_block ⇒ Object
Returns the block set in Configuration#after_initialize.
- #builtin_directories ⇒ Object
-
#database_configuration ⇒ Object
Loads and returns the contents of the #database_configuration_file.
-
#environment ⇒ Object
Return the currently selected environment.
-
#environment_path ⇒ Object
The path to the current environment’s file (development.rb, etc.).
- #framework_paths ⇒ Object
-
#initialize ⇒ Configuration
constructor
Create a new Configuration instance, initialized with the default values.
-
#set_root_path! ⇒ Object
Set the root_path to RAILS_ROOT and canonicalize it.
-
#to_prepare(&callback) ⇒ Object
Add a preparation callback that will run before every request in development mode, or before the first request in production.
Constructor Details
#initialize ⇒ Configuration
Create a new Configuration instance, initialized with the default values.
508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 |
# File 'lib/initializer.rb', line 508 def initialize set_root_path! self.frameworks = default_frameworks self.load_paths = default_load_paths self.load_once_paths = default_load_once_paths self.log_path = default_log_path self.log_level = default_log_level self.view_path = default_view_path self.controller_paths = default_controller_paths self.cache_classes = default_cache_classes self.breakpoint_server = default_breakpoint_server self.whiny_nils = default_whiny_nils self.plugins = default_plugins self.plugin_paths = default_plugin_paths self.database_configuration_file = default_database_configuration_file for framework in default_frameworks self.send("#{framework}=", Rails::OrderedOptions.new) end end |
Instance Attribute Details
#action_controller ⇒ Object
A stub for setting options on ActionController::Base
427 428 429 |
# File 'lib/initializer.rb', line 427 def action_controller @action_controller end |
#action_mailer ⇒ Object
A stub for setting options on ActionMailer::Base
430 431 432 |
# File 'lib/initializer.rb', line 430 def action_mailer @action_mailer end |
#action_view ⇒ Object
A stub for setting options on ActionView::Base
433 434 435 |
# File 'lib/initializer.rb', line 433 def action_view @action_view end |
#action_web_service ⇒ Object
A stub for setting options on ActionWebService::Base
436 437 438 |
# File 'lib/initializer.rb', line 436 def action_web_service @action_web_service end |
#active_record ⇒ Object
A stub for setting options on ActiveRecord::Base
439 440 441 |
# File 'lib/initializer.rb', line 439 def active_record @active_record end |
#breakpoint_server ⇒ Object
Whether or not to use the breakpoint server (boolean)
442 443 444 |
# File 'lib/initializer.rb', line 442 def breakpoint_server @breakpoint_server end |
#cache_classes ⇒ Object
Whether or not classes should be cached (set to false if you want application classes to be reloaded on each request)
446 447 448 |
# File 'lib/initializer.rb', line 446 def cache_classes @cache_classes end |
#connection_adapters ⇒ Object
The list of connection adapters to load. (By default, all connection adapters are loaded. You can set this to be just the adapter(s) you will use to reduce your application’s load time.)
451 452 453 |
# File 'lib/initializer.rb', line 451 def connection_adapters @connection_adapters end |
#controller_paths ⇒ Object
The list of paths that should be searched for controllers. (Defaults to app/controllers
and components
.)
455 456 457 |
# File 'lib/initializer.rb', line 455 def controller_paths @controller_paths end |
#database_configuration_file ⇒ Object
The path to the database configuration file to use. (Defaults to config/database.yml
.)
459 460 461 |
# File 'lib/initializer.rb', line 459 def database_configuration_file @database_configuration_file end |
#frameworks ⇒ Object
The list of rails framework components that should be loaded. (Defaults to :active_record
, :action_controller
, :action_view
, :action_mailer
, and :action_web_service
).
465 466 467 |
# File 'lib/initializer.rb', line 465 def frameworks @frameworks end |
#load_once_paths ⇒ Object
An array of paths from which Rails will automatically load from only once. All elements of this array must also be in load_paths
.
473 474 475 |
# File 'lib/initializer.rb', line 473 def load_once_paths @load_once_paths end |
#load_paths ⇒ Object
An array of additional paths to prepend to the load path. By default, all app
, lib
, vendor
and mock paths are included in this list.
469 470 471 |
# File 'lib/initializer.rb', line 469 def load_paths @load_paths end |
#log_level ⇒ Object
The log level to use for the default Rails logger. In production mode, this defaults to :info
. In development mode, it defaults to :debug
.
478 479 480 |
# File 'lib/initializer.rb', line 478 def log_level @log_level end |
#log_path ⇒ Object
The path to the log file to use. Defaults to log/##environment.log (e.g. log/development.log or log/production.log).
482 483 484 |
# File 'lib/initializer.rb', line 482 def log_path @log_path end |
#logger ⇒ Object
The specific logger to use. By default, a logger will be created and initialized using #log_path and #log_level, but a programmer may specifically set the logger to use via this accessor and it will be used directly.
488 489 490 |
# File 'lib/initializer.rb', line 488 def logger @logger end |
#plugin_paths ⇒ Object
The path to the root of the plugins directory. By default, it is in vendor/plugins
.
504 505 506 |
# File 'lib/initializer.rb', line 504 def plugin_paths @plugin_paths end |
#plugins ⇒ Object
The list of plugins to load. If this is set to nil
, all plugins will be loaded. If this is set to []
, no plugins will be loaded. Otherwise, plugins will be loaded in the order specified.
500 501 502 |
# File 'lib/initializer.rb', line 500 def plugins @plugins end |
#root_path ⇒ Object (readonly)
The application’s base directory.
424 425 426 |
# File 'lib/initializer.rb', line 424 def root_path @root_path end |
#view_path ⇒ Object
The root of the application’s views. (Defaults to app/views
.)
491 492 493 |
# File 'lib/initializer.rb', line 491 def view_path @view_path end |
#whiny_nils ⇒ Object
Set to true
if you want to be warned (noisily) when you try to invoke any method of nil
. Set to false
for the standard Ruby behavior.
495 496 497 |
# File 'lib/initializer.rb', line 495 def whiny_nils @whiny_nils end |
Instance Method Details
#after_initialize(&after_initialize_block) ⇒ Object
Sets a block which will be executed after rails has been fully initialized. Useful for per-environment configuration which depends on the framework being fully initialized.
569 570 571 |
# File 'lib/initializer.rb', line 569 def after_initialize(&after_initialize_block) @after_initialize_block = after_initialize_block end |
#after_initialize_block ⇒ Object
Returns the block set in Configuration#after_initialize
574 575 576 |
# File 'lib/initializer.rb', line 574 def after_initialize_block @after_initialize_block end |
#builtin_directories ⇒ Object
587 588 589 590 |
# File 'lib/initializer.rb', line 587 def builtin_directories # Include builtins only in the development environment. (environment == 'development') ? Dir["#{RAILTIES_PATH}/builtin/*/"] : [] end |
#database_configuration ⇒ Object
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.
550 551 552 |
# File 'lib/initializer.rb', line 550 def database_configuration YAML::load(ERB.new(IO.read(database_configuration_file)).result) end |
#environment ⇒ Object
Return the currently selected environment. By default, it returns the value of the RAILS_ENV
constant.
562 563 564 |
# File 'lib/initializer.rb', line 562 def environment ::RAILS_ENV end |
#environment_path ⇒ Object
The path to the current environment’s file (development.rb, etc.). By default the file is at config/environments/#{environment}.rb
.
556 557 558 |
# File 'lib/initializer.rb', line 556 def environment_path "#{root_path}/config/environments/#{environment}.rb" end |
#framework_paths ⇒ Object
592 593 594 595 596 597 598 599 600 601 602 603 |
# File 'lib/initializer.rb', line 592 def framework_paths # TODO: Don't include dirs for frameworks that are not used %w( railties railties/lib actionpack/lib activesupport/lib activerecord/lib actionmailer/lib actionwebservice/lib ).map { |dir| "#{framework_root_path}/#{dir}" }.select { |dir| File.directory?(dir) } end |
#set_root_path! ⇒ Object
Set the root_path to RAILS_ROOT and canonicalize it.
531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 |
# File 'lib/initializer.rb', line 531 def set_root_path! raise 'RAILS_ROOT is not set' unless defined?(::RAILS_ROOT) raise 'RAILS_ROOT is not a directory' unless File.directory?(::RAILS_ROOT) @root_path = # Pathname is incompatible with Windows, but Windows doesn't have # real symlinks so File.expand_path is safe. if RUBY_PLATFORM =~ /(:?mswin|mingw)/ File.(::RAILS_ROOT) # Otherwise use Pathname#realpath which respects symlinks. else Pathname.new(::RAILS_ROOT).realpath.to_s end end |
#to_prepare(&callback) ⇒ Object
Add a preparation callback that will run before every request in development mode, or before the first request in production.
See Dispatcher#to_prepare.
582 583 584 585 |
# File 'lib/initializer.rb', line 582 def to_prepare(&callback) require 'dispatcher' unless defined?(::Dispatcher) Dispatcher.to_prepare(&callback) end |