Class: Rails::Railtie::Configuration
- Inherits:
-
Object
- Object
- Rails::Railtie::Configuration
- Defined in:
- lib/rails/railtie/configuration.rb
Direct Known Subclasses
Class Method Summary collapse
-
.eager_load_namespaces ⇒ Object
Expose the eager_load_namespaces at “module” level for convenience.
Instance Method Summary collapse
-
#after_initialize(&block) ⇒ Object
Last configurable block to run.
-
#after_routes_loaded(&block) ⇒ Object
Called after application routes have been loaded.
-
#app_generators {|@@app_generators| ... } ⇒ Object
This allows you to modify application’s generators from Railties.
-
#app_middleware ⇒ Object
This allows you to modify the application’s middlewares from Engines.
-
#before_configuration(&block) ⇒ Object
First configurable block to run.
-
#before_eager_load(&block) ⇒ Object
Third configurable block to run.
-
#before_initialize(&block) ⇒ Object
Second configurable block to run.
-
#eager_load_namespaces ⇒ Object
All namespaces that are eager loaded.
-
#initialize ⇒ Configuration
constructor
A new instance of Configuration.
- #respond_to?(name, include_private = false) ⇒ Boolean
-
#to_prepare(&blk) ⇒ Object
Defines generic callbacks to run before #after_initialize.
-
#to_prepare_blocks ⇒ Object
Array of callbacks defined by #to_prepare.
-
#watchable_dirs ⇒ Object
Add directories that should be watched for change.
-
#watchable_files ⇒ Object
Add files that should be watched for change.
Constructor Details
#initialize ⇒ Configuration
Returns a new instance of Configuration.
8 9 10 |
# File 'lib/rails/railtie/configuration.rb', line 8 def initialize @@options ||= {} end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args, &blk) ⇒ Object (private)
99 100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/rails/railtie/configuration.rb', line 99 def method_missing(name, *args, &blk) if name.end_with?("=") key = name[0..-2].to_sym if actual_method?(key) raise NoMethodError.new("Cannot assign to `#{key}`, it is a configuration method") end @@options[key] = args.first elsif @@options.key?(name) @@options[name] else super end end |
Class Method Details
.eager_load_namespaces ⇒ Object
Expose the eager_load_namespaces at “module” level for convenience.
13 14 15 |
# File 'lib/rails/railtie/configuration.rb', line 13 def self.eager_load_namespaces # :nodoc: @@eager_load_namespaces ||= [] end |
Instance Method Details
#after_initialize(&block) ⇒ Object
Last configurable block to run. Called after frameworks initialize.
70 71 72 |
# File 'lib/rails/railtie/configuration.rb', line 70 def after_initialize(&block) ActiveSupport.on_load(:after_initialize, yield: true, &block) end |
#after_routes_loaded(&block) ⇒ Object
Called after application routes have been loaded.
75 76 77 |
# File 'lib/rails/railtie/configuration.rb', line 75 def after_routes_loaded(&block) ActiveSupport.on_load(:after_routes_loaded, yield: true, &block) end |
#app_generators {|@@app_generators| ... } ⇒ Object
This allows you to modify application’s generators from Railties.
Values set on app_generators will become defaults for application, unless application overwrites them.
47 48 49 50 51 |
# File 'lib/rails/railtie/configuration.rb', line 47 def app_generators @@app_generators ||= Rails::Configuration::Generators.new yield(@@app_generators) if block_given? @@app_generators end |
#app_middleware ⇒ Object
This allows you to modify the application’s middlewares from Engines.
All operations you run on the app_middleware will be replayed on the application once it is defined and the default_middlewares are created
39 40 41 |
# File 'lib/rails/railtie/configuration.rb', line 39 def app_middleware @@app_middleware ||= Rails::Configuration::MiddlewareStackProxy.new end |
#before_configuration(&block) ⇒ Object
First configurable block to run. Called before any initializers are run.
54 55 56 |
# File 'lib/rails/railtie/configuration.rb', line 54 def before_configuration(&block) ActiveSupport.on_load(:before_configuration, yield: true, &block) end |
#before_eager_load(&block) ⇒ Object
Third configurable block to run. Does not run if config.eager_load
set to false.
60 61 62 |
# File 'lib/rails/railtie/configuration.rb', line 60 def before_eager_load(&block) ActiveSupport.on_load(:before_eager_load, yield: true, &block) end |
#before_initialize(&block) ⇒ Object
Second configurable block to run. Called before frameworks initialize.
65 66 67 |
# File 'lib/rails/railtie/configuration.rb', line 65 def before_initialize(&block) ActiveSupport.on_load(:before_initialize, yield: true, &block) end |
#eager_load_namespaces ⇒ Object
All namespaces that are eager loaded
18 19 20 |
# File 'lib/rails/railtie/configuration.rb', line 18 def eager_load_namespaces @@eager_load_namespaces ||= [] end |
#respond_to?(name, include_private = false) ⇒ Boolean
90 91 92 |
# File 'lib/rails/railtie/configuration.rb', line 90 def respond_to?(name, include_private = false) super || @@options.key?(name.to_sym) end |
#to_prepare(&blk) ⇒ Object
Defines generic callbacks to run before #after_initialize. Useful for Rails::Railtie subclasses.
86 87 88 |
# File 'lib/rails/railtie/configuration.rb', line 86 def to_prepare(&blk) to_prepare_blocks << blk if blk end |
#to_prepare_blocks ⇒ Object
Array of callbacks defined by #to_prepare.
80 81 82 |
# File 'lib/rails/railtie/configuration.rb', line 80 def to_prepare_blocks @@to_prepare_blocks ||= [] end |
#watchable_dirs ⇒ Object
Add directories that should be watched for change. The key of the hashes should be directories and the values should be an array of extensions to match in each directory.
30 31 32 |
# File 'lib/rails/railtie/configuration.rb', line 30 def watchable_dirs @@watchable_dirs ||= {} end |
#watchable_files ⇒ Object
Add files that should be watched for change.
23 24 25 |
# File 'lib/rails/railtie/configuration.rb', line 23 def watchable_files @@watchable_files ||= [] end |