Class: Rails::Engine::Configuration
- Inherits:
-
Railtie::Configuration
- Object
- Railtie::Configuration
- Rails::Engine::Configuration
- Defined in:
- lib/rails/engine/configuration.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#autoload_once_paths ⇒ Object
An array of custom autoload once paths.
-
#autoload_paths ⇒ Object
An array of custom autoload paths to be added to the ones defined automatically by Rails.
-
#default_scope ⇒ Object
Returns the value of attribute default_scope.
-
#eager_load_paths ⇒ Object
An array of custom eager load paths to be added to the ones defined automatically by Rails.
-
#javascript_path ⇒ Object
Returns the value of attribute javascript_path.
-
#middleware ⇒ Object
Returns the value of attribute middleware.
-
#root ⇒ Object
Returns the value of attribute root.
-
#route_set_class ⇒ Object
Returns the value of attribute route_set_class.
Instance Method Summary collapse
-
#all_autoload_once_paths ⇒ Object
Private method that adds custom autoload once paths to the ones defined by
paths
. -
#all_autoload_paths ⇒ Object
Private method that adds custom autoload paths to the ones defined by
paths
. -
#all_eager_load_paths ⇒ Object
Private method that adds custom eager load paths to the ones defined by
paths
. -
#generators {|@generators| ... } ⇒ Object
Holds generators configuration:.
-
#initialize(root = nil) ⇒ Configuration
constructor
A new instance of Configuration.
- #paths ⇒ Object
Methods inherited from Railtie::Configuration
#after_initialize, #after_routes_loaded, #app_generators, #app_middleware, #before_configuration, #before_eager_load, #before_initialize, #eager_load_namespaces, eager_load_namespaces, #respond_to?, #to_prepare, #to_prepare_blocks, #watchable_dirs, #watchable_files
Constructor Details
#initialize(root = nil) ⇒ Configuration
Returns a new instance of Configuration.
41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File '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 ⇒ Object
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
.
29 30 31 |
# File 'lib/rails/engine/configuration.rb', line 29 def autoload_once_paths @autoload_once_paths end |
#autoload_paths ⇒ Object
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
.
20 21 22 |
# File 'lib/rails/engine/configuration.rb', line 20 def autoload_paths @autoload_paths end |
#default_scope ⇒ Object
Returns the value of attribute default_scope.
9 10 11 |
# File 'lib/rails/engine/configuration.rb', line 9 def default_scope @default_scope end |
#eager_load_paths ⇒ Object
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
.
39 40 41 |
# File 'lib/rails/engine/configuration.rb', line 39 def eager_load_paths @eager_load_paths end |
#javascript_path ⇒ Object
Returns the value of attribute javascript_path.
9 10 11 |
# File 'lib/rails/engine/configuration.rb', line 9 def javascript_path @javascript_path end |
#middleware ⇒ Object
Returns the value of attribute middleware.
9 10 11 |
# File 'lib/rails/engine/configuration.rb', line 9 def middleware @middleware end |
#root ⇒ Object
Returns the value of attribute root.
8 9 10 |
# File 'lib/rails/engine/configuration.rb', line 8 def root @root end |
#route_set_class ⇒ Object
Returns the value of attribute route_set_class.
9 10 11 |
# File 'lib/rails/engine/configuration.rb', line 9 def route_set_class @route_set_class end |
Instance Method Details
#all_autoload_once_paths ⇒ Object
Private method that adds custom autoload once paths to the ones defined by paths
.
127 128 129 |
# File 'lib/rails/engine/configuration.rb', line 127 def all_autoload_once_paths # :nodoc: autoload_once_paths + paths.autoload_once end |
#all_autoload_paths ⇒ Object
Private method that adds custom autoload paths to the ones defined by paths
.
121 122 123 |
# File 'lib/rails/engine/configuration.rb', line 121 def all_autoload_paths # :nodoc: autoload_paths + paths.autoload_paths end |
#all_eager_load_paths ⇒ Object
Private method that adds custom eager load paths to the ones defined by paths
.
133 134 135 |
# File 'lib/rails/engine/configuration.rb', line 133 def all_eager_load_paths # :nodoc: eager_load_paths + paths.eager_load end |
#generators {|@generators| ... } ⇒ Object
Holds generators configuration:
config.generators do |g|
g.orm :data_mapper, migration: true
g.template_engine :haml
g.test_framework :rspec
end
If you want to disable color in console, do:
config.generators.colorize_logging = false
67 68 69 70 71 |
# File 'lib/rails/engine/configuration.rb', line 67 def generators @generators ||= Rails::Configuration::Generators.new yield(@generators) if block_given? @generators end |
#paths ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
# File '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 |