Class: Rails::Railtie::Configuration
Relationships & Source Files | |
Extension / Inclusion / Inheritance Descendants | |
Subclasses:
|
|
Inherits: | Object |
Defined in: | railties/lib/rails/railtie/configuration.rb |
Class Method Summary
- .new ⇒ Configuration constructor
-
.eager_load_namespaces
Internal use only
Expose the eager_load_namespaces at “module” level for convenience.
Instance Method Summary
-
#after_initialize(&block)
Last configurable block to run.
-
#after_routes_loaded(&block)
Called after application routes have been loaded.
-
#app_generators {|@@app_generators| ... }
This allows you to modify application’s generators from Railties.
-
#app_middleware
This allows you to modify the application’s middlewares from Engines.
-
#before_configuration(&block)
First configurable block to run.
-
#before_eager_load(&block)
Third configurable block to run.
-
#before_initialize(&block)
Second configurable block to run.
-
#eager_load_namespaces
All namespaces that are eager loaded.
- #respond_to?(name, include_private = false) ⇒ Boolean
-
#to_prepare(&blk)
Defines generic callbacks to run before #after_initialize.
-
#to_prepare_blocks
::Array
of callbacks defined by #to_prepare. -
#watchable_dirs
Add directories that should be watched for change.
-
#watchable_files
Add files that should be watched for change.
- #actual_method?(key) ⇒ Boolean private
- #method_missing(name, *args, &blk) private
Constructor Details
.new ⇒ Configuration
# File 'railties/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) (private)
[ GitHub ]# File 'railties/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
Expose the eager_load_namespaces at “module” level for convenience.
# File 'railties/lib/rails/railtie/configuration.rb', line 13
def self.eager_load_namespaces # :nodoc: @@eager_load_namespaces ||= [] end
Instance Method Details
#actual_method?(key) ⇒ Boolean
(private)
# File 'railties/lib/rails/railtie/configuration.rb', line 95
def actual_method?(key) !@@options.key?(key) && respond_to?(key) end
#after_initialize(&block)
Last configurable block to run. Called after frameworks initialize.
# File 'railties/lib/rails/railtie/configuration.rb', line 70
def after_initialize(&block) ActiveSupport.on_load(:after_initialize, yield: true, &block) end
#after_routes_loaded(&block)
Called after application routes have been loaded.
# File 'railties/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| ... }
This allows you to modify application’s generators from Railties.
Values set on app_generators will become defaults for application, unless application overwrites them.
# File 'railties/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
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
# File 'railties/lib/rails/railtie/configuration.rb', line 39
def app_middleware @@app_middleware ||= Rails::Configuration::MiddlewareStackProxy.new end
#before_configuration(&block)
First configurable block to run. Called before any initializers are run.
# File 'railties/lib/rails/railtie/configuration.rb', line 54
def before_configuration(&block) ActiveSupport.on_load(:before_configuration, yield: true, &block) end
#before_eager_load(&block)
Third configurable block to run. Does not run if config.eager_load
set to false.
# File 'railties/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)
Second configurable block to run. Called before frameworks initialize.
# File 'railties/lib/rails/railtie/configuration.rb', line 65
def before_initialize(&block) ActiveSupport.on_load(:before_initialize, yield: true, &block) end
#eager_load_namespaces
All namespaces that are eager loaded
# File 'railties/lib/rails/railtie/configuration.rb', line 18
def eager_load_namespaces @@eager_load_namespaces ||= [] end
#respond_to?(name, include_private = false) ⇒ Boolean
# File 'railties/lib/rails/railtie/configuration.rb', line 90
def respond_to?(name, include_private = false) super || @@options.key?(name.to_sym) end
#to_prepare(&blk)
Defines generic callbacks to run before #after_initialize. Useful for ::Rails::Railtie
subclasses.
# File 'railties/lib/rails/railtie/configuration.rb', line 86
def to_prepare(&blk) to_prepare_blocks << blk if blk end
#to_prepare_blocks
::Array
of callbacks defined by #to_prepare.
# File 'railties/lib/rails/railtie/configuration.rb', line 80
def to_prepare_blocks @@to_prepare_blocks ||= [] end
#watchable_dirs
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.
# File 'railties/lib/rails/railtie/configuration.rb', line 30
def watchable_dirs @@watchable_dirs ||= {} end
#watchable_files
Add files that should be watched for change.
# File 'railties/lib/rails/railtie/configuration.rb', line 23
def watchable_files @@watchable_files ||= [] end