Class: Rails::Application
- Inherits:
- Engine show all
- Defined in:
- railties/lib/rails/application.rb,
railties/lib/rails/application/finisher.rb,
railties/lib/rails/application/railties.rb,
railties/lib/rails/application/bootstrap.rb,
railties/lib/rails/application/configuration.rb,
railties/lib/rails/application/routes_reloader.rb
Overview
In Rails 3.0, a Rails::Application object was introduced which is nothing more than an Engine but with the responsibility of coordinating the whole boot process.
Initialization
Rails::Application is responsible for executing all railties, engines and plugin initializers. It also executes some bootstrap initializers (check Rails::Application::Bootstrap) and finishing initializers, after all the others are executed (check Rails::Application::Finisher).
Configuration
Besides providing the same configuration as Rails::Engine and Rails::Railtie, the application object has several specific configurations, for example "allow_concurrency", "cache_classes", "consider_all_requests_local", "filter_parameters", "logger", "reload_plugins" and so forth.
Check Rails::Application::Configuration to see them all.
Routes
The application object is also responsible for holding the routes and reloading routes whenever the files change in development.
Middlewares
The Application is also responsible for building the middleware stack.
Defined Under Namespace
Modules: Bootstrap, Finisher Classes: Configuration, Railties, RoutesReloader
Constant Summary
Constant Summary
Constants inherited from Railtie
Instance Attribute Summary (collapse)
-
- (Object) assets
Returns the value of attribute assets.
-
- (Object) sandbox
(also: #sandbox?)
Returns the value of attribute sandbox.
Class Method Summary (collapse)
Instance Method Summary (collapse)
-
- (Object) add_lib_to_load_path!
This method is called just after an application inherits from Rails::Application, allowing the developer to load classes in lib and use them during application configuration.
- - (Object) config
- - (Object) env_config
-
- (Application) initialize
constructor
A new instance of Application.
- - (Object) initialize!(group = :default)
- - (Object) initializers
- - (Object) load_console(app = self)
- - (Object) load_generators(app = self)
- - (Object) load_tasks(app = self)
- - (Object) reload_routes!
-
- (Object) require_environment!
:nodoc:.
- - (Object) routes_reloader
- - (Object) to_app
Methods inherited from Engine
#app, #call, #eager_load!, endpoint, #endpoint, find, #helpers, isolate_namespace, #load_seed, #railties, #routes
Methods inherited from Railtie
abstract_railtie?, console, #eager_load!, generators, railtie_name, rake_tasks, subclasses
Methods included from Initializable
Constructor Details
- (Application) initialize
A new instance of Application
58 59 60 61 |
# File 'railties/lib/rails/application.rb', line 58 def initialize super @initialized = false end |
Instance Attribute Details
- (Object) assets
Returns the value of attribute assets
53 54 55 |
# File 'railties/lib/rails/application.rb', line 53 def assets @assets end |
- (Object) sandbox Also known as: sandbox?
Returns the value of attribute sandbox
53 54 55 |
# File 'railties/lib/rails/application.rb', line 53 def sandbox @sandbox end |
Class Method Details
+ (Object) inherited(base)
44 45 46 47 48 49 50 |
# File 'railties/lib/rails/application.rb', line 44 def inherited(base) raise "You cannot have more than one Rails::Application" if Rails.application super Rails.application = base.instance Rails.application.add_lib_to_load_path! ActiveSupport.run_load_hooks(:before_configuration, base.instance) end |
Instance Method Details
- (Object) add_lib_to_load_path!
This method is called just after an application inherits from Rails::Application, allowing the developer to load classes in lib and use them during application configuration.
class MyApplication < Rails::Application
require "my_backend" # in lib/my_backend
config.i18n.backend = MyBackend
end
Notice this method takes into consideration the default root path. So if you are changing config.root inside your application definition or having a custom Rails application, you will need to add lib to $LOAD_PATH on your own in case you need to load files in lib/ during the application configuration as well.
76 77 78 79 |
# File 'railties/lib/rails/application.rb', line 76 def add_lib_to_load_path! #:nodoc: path = config.root.join('lib').to_s $LOAD_PATH.unshift(path) if File.exists?(path) end |
- (Object) config
133 134 135 |
# File 'railties/lib/rails/application.rb', line 133 def config @config ||= Application::Configuration.new(find_root_with_flag("config.ru", Dir.pwd)) end |
- (Object) env_config
119 120 121 122 123 124 125 |
# File 'railties/lib/rails/application.rb', line 119 def env_config @env_config ||= super.merge({ "action_dispatch.parameter_filter" => config.filter_parameters, "action_dispatch.secret_token" => config.secret_token, "action_dispatch.show_exceptions" => config.action_dispatch.show_exceptions }) end |
- (Object) initialize!(group = :default)
94 95 96 97 98 99 |
# File 'railties/lib/rails/application.rb', line 94 def initialize!(group=:default) raise "Application has been already initialized." if @initialized run_initializers(group, self) @initialized = true self end |
- (Object) initializers
127 128 129 130 131 |
# File 'railties/lib/rails/application.rb', line 127 def initializers Bootstrap.initializers_for(self) + super + Finisher.initializers_for(self) end |
- (Object) load_console(app = self)
113 114 115 116 117 |
# File 'railties/lib/rails/application.rb', line 113 def load_console(app=self) initialize_console super self end |
- (Object) load_generators(app = self)
107 108 109 110 111 |
# File 'railties/lib/rails/application.rb', line 107 def load_generators(app=self) initialize_generators super self end |
- (Object) load_tasks(app = self)
101 102 103 104 105 |
# File 'railties/lib/rails/application.rb', line 101 def load_tasks(app=self) initialize_tasks super self end |
- (Object) reload_routes!
86 87 88 |
# File 'railties/lib/rails/application.rb', line 86 def reload_routes! routes_reloader.reload! end |
- (Object) require_environment!
:nodoc:
81 82 83 84 |
# File 'railties/lib/rails/application.rb', line 81 def require_environment! #:nodoc: environment = paths["config/environment"].existent.first require environment if environment end |
- (Object) routes_reloader
90 91 92 |
# File 'railties/lib/rails/application.rb', line 90 def routes_reloader @routes_reloader ||= RoutesReloader.new end |
- (Object) to_app
137 138 139 |
# File 'railties/lib/rails/application.rb', line 137 def to_app self end |