Class: Rails::Engine::Configuration
Relationships & Source Files | |
Extension / Inclusion / Inheritance Descendants | |
Subclasses:
|
|
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
|
|
Instance Chain:
|
|
Inherits: |
Rails::Railtie::Configuration
|
Defined in: | railties/lib/rails/engine/configuration.rb |
Class Method Summary
- .new(root = nil) ⇒ Configuration constructor
::Rails::Railtie::Configuration
- Inherited
.new, | |
.eager_load_namespaces | Expose the eager_load_namespaces at “module” level for convenience. |
Instance Attribute Summary
-
#autoload_once_paths
rw
An array of custom autoload once paths.
- #autoload_once_paths=(value) rw
-
#autoload_paths
rw
An array of custom autoload paths to be added to the ones defined automatically by
::Rails
. - #autoload_paths=(value) rw
- #default_scope rw
-
#eager_load_paths
rw
An array of custom eager load paths to be added to the ones defined automatically by
::Rails
. - #eager_load_paths=(value) rw
- #javascript_path rw
- #middleware rw
- #root rw
- #root=(value) rw
- #route_set_class rw
Instance Method Summary
-
#generators {|@generators| ... }
Holds generators configuration:
- #paths
-
#all_autoload_once_paths
Internal use only
Private method that adds custom autoload once paths to the ones defined by #paths.
-
#all_autoload_paths
Internal use only
Private method that adds custom autoload paths to the ones defined by #paths.
-
#all_eager_load_paths
Internal use only
Private method that adds custom eager load paths to the ones defined by #paths.
::Rails::Railtie::Configuration
- Inherited
#after_initialize | Last configurable block to run. |
#after_routes_loaded | Called after application routes have been loaded. |
#app_generators | This allows you to modify application’s generators from |
#app_middleware | This allows you to modify the application’s middlewares from Engines. |
#before_configuration | First configurable block to run. |
#before_eager_load | Third configurable block to run. |
#before_initialize | Second configurable block to run. |
#eager_load_namespaces | All namespaces that are eager loaded. |
#respond_to?, | |
#to_prepare | Defines generic callbacks to run before |
#to_prepare_blocks |
|
#watchable_dirs | Add directories that should be watched for change. |
#watchable_files | Add files that should be watched for change. |
#actual_method?, #method_missing |
Constructor Details
.new(root = nil) ⇒ Configuration
# File 'railties/lib/rails/engine/configuration.rb', line 41
def initialize(root = nil) super() @root = root @generators = app_generators.dup @middleware = Rails::Configuration::MiddlewareStackProxy.new @javascript_path = "javascript" @route_set_class = ActionDispatch::Routing::RouteSet @default_scope = nil @autoload_paths = [] @autoload_once_paths = [] @eager_load_paths = [] end
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Rails::Railtie::Configuration
Instance Attribute Details
#autoload_once_paths (rw)
An array of custom autoload once paths. These won’t be eager loaded unless you push them to #eager_load_paths too, which is recommended.
This collection is empty by default, it accepts strings and ::Pathname
objects.
If you’d like to add lib
to it, please see autoload_lib_once
.
# File 'railties/lib/rails/engine/configuration.rb', line 29
attr_reader :autoload_once_paths
#autoload_once_paths=(value) (rw)
[ GitHub ]# File 'railties/lib/rails/engine/configuration.rb', line 10
attr_writer :eager_load_paths, :autoload_once_paths, :autoload_paths
#autoload_paths (rw)
An array of custom autoload paths to be added to the ones defined automatically by ::Rails
. These won’t be eager loaded, unless you push them to #eager_load_paths too, which is recommended.
This collection is empty by default, it accepts strings and ::Pathname
objects.
If you’d like to add lib
to it, please see autoload_lib
.
# File 'railties/lib/rails/engine/configuration.rb', line 20
attr_reader :autoload_paths
#autoload_paths=(value) (rw)
[ GitHub ]# File 'railties/lib/rails/engine/configuration.rb', line 10
attr_writer :eager_load_paths, :autoload_once_paths, :autoload_paths
#default_scope (rw)
[ GitHub ]# File 'railties/lib/rails/engine/configuration.rb', line 9
attr_accessor :middleware, :javascript_path, :route_set_class, :default_scope
#eager_load_paths (rw)
An array of custom eager load paths to be added to the ones defined automatically by ::Rails
. Anything in this collection is considered to be an autoload path regardless of whether it was added to #autoload_paths.
This collection is empty by default, it accepts strings and ::Pathname
objects.
If you’d like to add lib
to it, please see autoload_lib
.
# File 'railties/lib/rails/engine/configuration.rb', line 39
attr_reader :eager_load_paths
#eager_load_paths=(value) (rw)
[ GitHub ]# File 'railties/lib/rails/engine/configuration.rb', line 10
attr_writer :eager_load_paths, :autoload_once_paths, :autoload_paths
#javascript_path (rw)
[ GitHub ]# File 'railties/lib/rails/engine/configuration.rb', line 9
attr_accessor :middleware, :javascript_path, :route_set_class, :default_scope
#middleware (rw)
[ GitHub ]# File 'railties/lib/rails/engine/configuration.rb', line 9
attr_accessor :middleware, :javascript_path, :route_set_class, :default_scope
#root (rw)
[ GitHub ]# File 'railties/lib/rails/engine/configuration.rb', line 8
attr_reader :root
#root=(value) (rw)
[ GitHub ]#route_set_class (rw)
[ GitHub ]# File 'railties/lib/rails/engine/configuration.rb', line 9
attr_accessor :middleware, :javascript_path, :route_set_class, :default_scope
Instance Method Details
#all_autoload_once_paths
Private method that adds custom autoload once paths to the ones defined by #paths.
# File 'railties/lib/rails/engine/configuration.rb', line 127
def all_autoload_once_paths # :nodoc: autoload_once_paths + paths.autoload_once end
#all_autoload_paths
Private method that adds custom autoload paths to the ones defined by #paths.
# File 'railties/lib/rails/engine/configuration.rb', line 121
def all_autoload_paths # :nodoc: autoload_paths + paths.autoload_paths end
#all_eager_load_paths
Private method that adds custom eager load paths to the ones defined by #paths.
# File 'railties/lib/rails/engine/configuration.rb', line 133
def all_eager_load_paths # :nodoc: eager_load_paths + paths.eager_load end
#generators {|@generators| ... }
# File 'railties/lib/rails/engine/configuration.rb', line 67
def generators @generators ||= Rails::Configuration::Generators.new yield(@generators) if block_given? @generators end
#paths
[ GitHub ]# File 'railties/lib/rails/engine/configuration.rb', line 73
def paths @paths ||= begin paths = Rails::Paths::Root.new(@root) paths.add "app", eager_load: true, glob: "{*,*/concerns}", exclude: ["assets", javascript_path] paths.add "app/assets", glob: "*" paths.add "app/controllers", eager_load: true paths.add "app/channels", eager_load: true paths.add "app/helpers", eager_load: true paths.add "app/models", eager_load: true paths.add "app/mailers", eager_load: true paths.add "app/views" # If you add more lib subdirectories here that should not be managed # by the main autoloader, please update the config.autoload_lib call # in the template that generates config/application.rb accordingly. paths.add "lib", load_path: true paths.add "lib/assets", glob: "*" paths.add "lib/tasks", glob: "**/*.rake" paths.add "config" paths.add "config/environments", glob: -"#{Rails.env}.rb" paths.add "config/initializers", glob: "**/*.rb" paths.add "config/locales", glob: "**/*.{rb,yml}" paths.add "config/routes.rb" paths.add "config/routes", glob: "**/*.rb" paths.add "db" paths.add "db/migrate" paths.add "db/seeds.rb" paths.add "vendor", load_path: true paths.add "vendor/assets", glob: "*" paths.add "test/mailers/previews", autoload: true paths end end