Module: Rails
Overview
Class Attribute Summary
-
.app
readonly
Alias for .application.
- .app_class rw
- .application (also: .app) rw
- .application=(value) rw
- .cache rw
-
.env
rw
Returns the current Rails environment.
-
.env=(environment)
rw
Sets the Rails environment.
- .logger rw
Class Method Summary
-
.autoloaders
Provides access to the application autoloaders.
- .backtrace_cleaner
-
.configuration
The Configuration instance used to configure the Rails environment.
-
.error
Returns the
::ActiveSupport::ErrorReporterinstance used for reporting errors. -
.event
Returns the
::ActiveSupport::EventReporterinstance used for broadcasting structured events. -
.gem_version
Returns the currently loaded version of Rails as a
Gem::Version. -
.groups(*groups)
Returns all Rails groups for loading based on:
-
.public_path
Returns a
::Pathnameobject of the public folder of the current Rails project, otherwise it returnsnilif there is no project: -
.root
Returns a
::Pathnameobject of the current Rails project, otherwise it returnsnilif there is no project: -
.version
Returns the currently loaded version of Rails as a string.
- .deprecator Internal use only
::ActiveSupport::Benchmarkable - Extended
| benchmark | Allows you to measure the execution time of a block in a template and records the result to the log. |
::ActiveSupport::Autoload - Extended
Instance Method Summary
Class Attribute Details
.app (readonly)
Alias for .application.
# File 'railties/lib/rails.rb', line 49
alias :app :application
.app_class (rw)
[ GitHub ].application (rw) Also known as: .app
[ GitHub ].application=(value) (rw)
[ GitHub ]# File 'railties/lib/rails.rb', line 43
attr_writer :application
.cache (rw)
[ GitHub ].env (rw)
Returns the current Rails environment.
<code>env</code> # => "development"
<code>env</code>.development? # => true
<code>env</code>.production? # => false
<code>env</code>.local? # => true true for "development" and "test", false for anything else
# File 'railties/lib/rails.rb', line 80
def env @_env ||= ActiveSupport::EnvironmentInquirer.new(ENV["RAILS_ENV"].presence || ENV["RACK_ENV"].presence || "development") end
.env=(environment) (rw)
Sets the Rails environment.
{Rails.env} = "staging" # => "staging"
# File 'railties/lib/rails.rb', line 89
def env=(environment) @_env = ActiveSupport::EnvironmentInquirer.new(environment) end
.logger (rw)
[ GitHub ]Class Method Details
.autoloaders
Provides access to the application autoloaders.
The autoloader that manages autoload_paths is reachable as
<code>autoloaders</code>.main
This autoloader manages the constants that are reloaded when reloading is enabled.
The autoloader that manages autoload_once_paths is reachable as
<code>autoloaders</code>.once
This autoloader manages constants that are autoloaded, but not reloaded.
You can use these objects to customize their behavior, defining custom root namespaces, collapsing directories, configuring callbacks, etc.
#### config/environments/development.rb
<code>autoloaders</code>.main.on_load("MyGateway") do
MyGateway.endpoint = "https://my-gateway.localhost"
end
#### config/environments/production.rb
<code>autoloaders</code>.main.on_load("MyGateway") do
MyGateway.endpoint = "https://my-gateway.example.com"
end
The each iterator allows you to iterate over both loaders:
<code>autoloaders</code>.each do |loader|
loader.log!
end
which may be handy if you want to run the same code for both of them.
Indeed, there is a shortcut for that common use case:
<code>autoloaders</code>.log!
which is handy to watch the activity of the autoloaders.
Finally, zeitwerk_enabled? allows you to check if autoloading is powered
by Zeitwerk. This predicate returns a hard-coded true since Rails 7, but
it is still in place for engines that support Rails 6.
The autoloaders are available really early, you can access them in the application class body, environment configuration, initializers, etc.
Please check the Autoloading and Reloading Constants guide and the documentation ofZeitwerk itself for more details and usage patterns.
# File 'railties/lib/rails.rb', line 212
def autoloaders application.autoloaders end
.backtrace_cleaner
[ GitHub ]# File 'railties/lib/rails.rb', line 57
def backtrace_cleaner @backtrace_cleaner ||= Rails::BacktraceCleaner.new end
.configuration
The Configuration instance used to configure the Rails environment
# File 'railties/lib/rails.rb', line 53
def configuration application.config end
.deprecator
# File 'railties/lib/rails/deprecator.rb', line 5
def self.deprecator # :nodoc: @deprecator ||= ActiveSupport::Deprecation.new end
.error
Returns the ::ActiveSupport::ErrorReporter instance used for reporting
errors.
<code>error</code>.handle(IOError) do
# ...
end
<code>error</code>.report(error)
# File 'railties/lib/rails.rb', line 102
def error ActiveSupport.error_reporter end
.event
Returns the ::ActiveSupport::EventReporter instance used for broadcasting
structured events.
<code>event</code>.notify("my_event", { message: "Hello, world!" })
# File 'railties/lib/rails.rb', line 112
def event ActiveSupport.event_reporter end
.gem_version
Returns the currently loaded version of Rails as a Gem::Version.
.groups(*groups)
Returns all Rails groups for loading based on:
- The Rails environment;
- The environment variable RAILS_GROUPS;
- The optional envs given as argument and the hash with group dependencies;
<code>groups</code> assets: [:development, :test]
#### => [:default, "development", :assets] for {Rails.env} == "development"
#### => [:default, "production"] for {Rails.env} == "production"
.public_path
Returns a ::Pathname object of the public folder of the current
Rails project, otherwise it returns nil if there is no project:
<code>public_path</code>
# => #<Pathname:/Users/someuser/some/path/project/public>
# File 'railties/lib/rails.rb', line 145
def public_path application && Pathname.new(application.paths["public"].first) end
.root
Returns a ::Pathname object of the current Rails project,
otherwise it returns nil if there is no project:
<code>root</code>
# => #<Pathname:/Users/someuser/some/path/project>
# File 'railties/lib/rails.rb', line 68
def root application && application.config.root end
.version
Returns the currently loaded version of Rails as a string.
Instance Method Details
#initialize!
[ GitHub ]# File 'railties/lib/rails.rb', line 50
delegate :initialize!, :initialized?, to: :application
#initialized? ⇒ Boolean
# File 'railties/lib/rails.rb', line 50
delegate :initialize!, :initialized?, to: :application