Module: Rails
- Extended by:
- ActiveSupport::Autoload, ActiveSupport::Benchmarkable
- Defined in:
- lib/rails.rb,
lib/rails/info.rb,
lib/rails/rack.rb,
lib/rails/paths.rb,
lib/rails/engine.rb,
lib/rails/command.rb,
lib/rails/railtie.rb,
lib/rails/version.rb,
lib/rails/api/task.rb,
lib/rails/app_loader.rb,
lib/rails/deprecator.rb,
lib/rails/generators.rb,
lib/rails/application.rb,
lib/rails/autoloaders.rb,
lib/rails/dev_caching.rb,
lib/rails/gem_version.rb,
lib/rails/rack/logger.rb,
lib/rails/command/base.rb,
lib/rails/configuration.rb,
lib/rails/initializable.rb,
lib/rails/rackup/server.rb,
lib/rails/engine/updater.rb,
lib/rails/code_statistics.rb,
lib/rails/command/actions.rb,
lib/rails/engine/railties.rb,
lib/rails/generators/base.rb,
lib/rails/command/behavior.rb,
lib/rails/test_unit/runner.rb,
lib/rails/backtrace_cleaner.rb,
lib/rails/health_controller.rb,
lib/rails/test_unit/railtie.rb,
lib/rails/generators/actions.rb,
lib/rails/test_unit/reporter.rb,
lib/rails/generators/app_base.rb,
lib/rails/generators/app_name.rb,
lib/rails/generators/database.rb,
lib/rails/application/finisher.rb,
lib/rails/engine/configuration.rb,
lib/rails/generators/migration.rb,
lib/rails/generators/test_case.rb,
lib/rails/rack/silence_request.rb,
lib/rails/railtie/configurable.rb,
lib/rails/application/bootstrap.rb,
lib/rails/autoloaders/inflector.rb,
lib/rails/engine/lazy_route_set.rb,
lib/rails/generators/named_base.rb,
lib/rails/railtie/configuration.rb,
lib/rails/test_unit/test_parser.rb,
lib/rails/test_unit/test_parser.rb,
lib/rails/command/helpers/editor.rb,
lib/rails/generators/active_model.rb,
lib/rails/commands/dev/dev_command.rb,
lib/rails/commands/new/new_command.rb,
lib/rails/generators/bundle_helper.rb,
lib/rails/generators/model_helpers.rb,
lib/rails/test_unit/line_filtering.rb,
lib/rails/application/configuration.rb,
lib/rails/code_statistics_calculator.rb,
lib/rails/commands/boot/boot_command.rb,
lib/rails/commands/help/help_command.rb,
lib/rails/commands/rake/rake_command.rb,
lib/rails/commands/test/test_command.rb,
lib/rails/application/routes_reloader.rb,
lib/rails/commands/app/update_command.rb,
lib/rails/generators/resource_helpers.rb,
lib/rails/generators/testing/behavior.rb,
lib/rails/source_annotation_extractor.rb,
lib/rails/command/environment_argument.rb,
lib/rails/commands/about/about_command.rb,
lib/rails/commands/console/irb_console.rb,
lib/rails/commands/notes/notes_command.rb,
lib/rails/commands/stats/stats_command.rb,
lib/rails/generators/testing/assertions.rb,
lib/rails/commands/plugin/plugin_command.rb,
lib/rails/commands/routes/routes_command.rb,
lib/rails/commands/runner/runner_command.rb,
lib/rails/commands/secret/secret_command.rb,
lib/rails/commands/server/server_command.rb,
lib/rails/generators/generated_attribute.rb,
lib/rails/commands/console/console_command.rb,
lib/rails/commands/destroy/destroy_command.rb,
lib/rails/commands/restart/restart_command.rb,
lib/rails/commands/version/version_command.rb,
lib/rails/commands/gem_help/gem_help_command.rb,
lib/rails/commands/generate/generate_command.rb,
lib/rails/generators/rails/app/app_generator.rb,
lib/rails/generators/actions/create_migration.rb,
lib/rails/application/default_middleware_stack.rb,
lib/rails/commands/dbconsole/dbconsole_command.rb,
lib/rails/commands/encrypted/encrypted_command.rb,
lib/rails/generators/rails/task/task_generator.rb,
lib/rails/generators/testing/setup_and_teardown.rb,
lib/rails/commands/middleware/middleware_command.rb,
lib/rails/generators/rails/model/model_generator.rb,
lib/rails/commands/application/application_command.rb,
lib/rails/commands/credentials/credentials_command.rb,
lib/rails/commands/db/system/change/change_command.rb,
lib/rails/generators/rails/helper/helper_generator.rb,
lib/rails/generators/rails/plugin/plugin_generator.rb,
lib/rails/generators/rails/script/script_generator.rb,
lib/rails/commands/devcontainer/devcontainer_command.rb,
lib/rails/commands/initializers/initializers_command.rb,
lib/rails/commands/unused_routes/unused_routes_command.rb,
lib/rails/generators/rails/resource/resource_generator.rb,
lib/rails/generators/rails/scaffold/scaffold_generator.rb,
lib/rails/generators/rails/benchmark/benchmark_generator.rb,
lib/rails/generators/rails/generator/generator_generator.rb,
lib/rails/generators/rails/migration/migration_generator.rb,
lib/rails/generators/rails/controller/controller_generator.rb,
lib/rails/generators/rails/master_key/master_key_generator.rb,
lib/rails/generators/rails/credentials/credentials_generator.rb,
lib/rails/generators/rails/db/system/change/change_generator.rb,
lib/rails/generators/rails/system_test/system_test_generator.rb,
lib/rails/generators/rails/devcontainer/devcontainer_generator.rb,
lib/rails/generators/rails/authentication/authentication_generator.rb,
lib/rails/generators/rails/encrypted_file/encrypted_file_generator.rb,
lib/rails/generators/rails/resource_route/resource_route_generator.rb,
lib/rails/generators/rails/integration_test/integration_test_generator.rb,
lib/rails/generators/rails/application_record/application_record_generator.rb,
lib/rails/generators/rails/encryption_key_file/encryption_key_file_generator.rb,
lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb
Overview
:enddoc:
Defined Under Namespace
Modules: API, ActionMethods, AppLoader, Command, Configuration, DevCaching, Generators, Info, Initializable, LineFiltering, Paths, Rack, Rackup, TestUnit, VERSION Classes: AppBuilder, Application, ApplicationController, Autoloaders, BacktraceCleaner, CodeStatistics, CodeStatisticsCalculator, Console, DBConsole, Engine, HealthController, InfoController, MailersController, PluginBuilder, PwaController, Railtie, Server, SourceAnnotationExtractor, TestUnitRailtie, TestUnitReporter, WelcomeController, ZeitwerkChecker
Class Attribute Summary collapse
-
.app_class ⇒ Object
Returns the value of attribute app_class.
- .application ⇒ Object
-
.cache ⇒ Object
Returns the value of attribute cache.
-
.logger ⇒ Object
Returns the value of attribute logger.
Class Method Summary collapse
-
.autoloaders ⇒ Object
Provides access to the application autoloaders.
- .backtrace_cleaner ⇒ Object
-
.configuration ⇒ Object
The Configuration instance used to configure the Rails environment.
-
.deprecator ⇒ Object
:nodoc:.
-
.env ⇒ Object
Returns the current Rails environment.
-
.env=(environment) ⇒ Object
Sets the Rails environment.
-
.error ⇒ Object
Returns the ActiveSupport::ErrorReporter of the current Rails project, otherwise it returns
nilif there is no project. -
.event ⇒ Object
Returns the ActiveSupport::EventReporter of the current Rails project, otherwise it returns
nilif there is no project. -
.gem_version ⇒ Object
Returns the currently loaded version of Rails as a
Gem::Version. -
.groups(*groups) ⇒ Object
Returns all Rails groups for loading based on:.
-
.public_path ⇒ Object
Returns a Pathname object of the public folder of the current Rails project, otherwise it returns
nilif there is no project:. -
.root ⇒ Object
Returns a Pathname object of the current Rails project, otherwise it returns
nilif there is no project:. -
.version ⇒ Object
Returns the currently loaded version of Rails as a string.
Class Attribute Details
.app_class ⇒ Object
Returns the value of attribute app_class.
43 44 45 |
# File 'lib/rails.rb', line 43 def app_class @app_class end |
.application ⇒ Object
44 45 46 |
# File 'lib/rails.rb', line 44 def application @application ||= (app_class.instance if app_class) end |
.cache ⇒ Object
Returns the value of attribute cache.
43 44 45 |
# File 'lib/rails.rb', line 43 def cache @cache end |
.logger ⇒ Object
Returns the value of attribute logger.
43 44 45 |
# File 'lib/rails.rb', line 43 def logger @logger end |
Class Method Details
.autoloaders ⇒ Object
Provides access to the application autoloaders.
The autoloader that manages autoload_paths is reachable as
Rails.autoloaders.main
This autoloader manages the constants that are reloaded when reloading is enabled.
The autoloader that manages autoload_once_paths is reachable as
Rails.autoloaders.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
Rails.autoloaders.main.on_load("MyGateway") do
MyGateway.endpoint = "https://my-gateway.localhost"
end
# config/environments/production.rb
Rails.autoloaders.main.on_load("MyGateway") do
MyGateway.endpoint = "https://my-gateway.example.com"
end
The each iterator allows you to iterate over both loaders:
Rails.autoloaders.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:
Rails.autoloaders.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 of Zeitwerk itself for more details and usage patterns.
186 187 188 |
# File 'lib/rails.rb', line 186 def autoloaders application.autoloaders end |
.backtrace_cleaner ⇒ Object
55 56 57 |
# File 'lib/rails.rb', line 55 def backtrace_cleaner @backtrace_cleaner ||= Rails::BacktraceCleaner.new end |
.configuration ⇒ Object
The Configuration instance used to configure the Rails environment
51 52 53 |
# File 'lib/rails.rb', line 51 def configuration application.config end |
.deprecator ⇒ Object
:nodoc:
4 5 6 |
# File 'lib/rails/deprecator.rb', line 4 def self.deprecator # :nodoc: @deprecator ||= ActiveSupport::Deprecation.new end |
.env ⇒ Object
74 75 76 |
# File 'lib/rails.rb', line 74 def env @_env ||= ActiveSupport::EnvironmentInquirer.new(ENV["RAILS_ENV"].presence || ENV["RACK_ENV"].presence || "development") end |
.env=(environment) ⇒ Object
81 82 83 |
# File 'lib/rails.rb', line 81 def env=(environment) @_env = ActiveSupport::EnvironmentInquirer.new(environment) end |
.error ⇒ Object
92 93 94 |
# File 'lib/rails.rb', line 92 def error ActiveSupport.error_reporter end |
.event ⇒ Object
Returns the ActiveSupport::EventReporter of the current Rails project,
otherwise it returns nil if there is no project.
Rails.event.notify("my_event", { message: "Hello, world!" })
100 101 102 |
# File 'lib/rails.rb', line 100 def event ActiveSupport.event_reporter end |
.gem_version ⇒ Object
Returns the currently loaded version of Rails as a Gem::Version.
5 6 7 |
# File 'lib/rails/gem_version.rb', line 5 def self.gem_version Gem::Version.new VERSION::STRING end |
.groups(*groups) ⇒ Object
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;
Rails.groups assets: [:development, :test]
=> [:default, "development", :assets] for Rails.env == "development"
=> [:default, "production"] for Rails.env == "production"
113 114 115 116 117 118 119 120 121 122 |
# File 'lib/rails.rb', line 113 def groups(*groups) hash = groups. env = Rails.env groups.unshift(:default, env) groups.concat ENV["RAILS_GROUPS"].to_s.split(",") groups.concat hash.map { |k, v| k if v.map(&:to_s).include?(env) } groups.compact! groups.uniq! groups end |
.public_path ⇒ Object
Returns a Pathname object of the public folder of the current
Rails project, otherwise it returns nil if there is no project:
Rails.public_path
# => #<Pathname:/Users/someuser/some/path/project/public>
129 130 131 |
# File 'lib/rails.rb', line 129 def public_path application && Pathname.new(application.paths["public"].first) end |