diff options
Diffstat (limited to 'railties/lib')
-rw-r--r-- | railties/lib/rails/engine.rb | 12 | ||||
-rw-r--r-- | railties/lib/rails/engine/configuration.rb | 24 | ||||
-rw-r--r-- | railties/lib/rails/paths.rb | 44 |
3 files changed, 28 insertions, 52 deletions
diff --git a/railties/lib/rails/engine.rb b/railties/lib/rails/engine.rb index 8a6d1f34aa..46a6485c44 100644 --- a/railties/lib/rails/engine.rb +++ b/railties/lib/rails/engine.rb @@ -34,8 +34,9 @@ module Rails # == Configuration # # Besides the +Railtie+ configuration which is shared across the application, in a - # <tt>Rails::Engine</tt> you can access <tt>autoload_paths</tt> and <tt>autoload_once_paths</tt>, - # which, differently from a <tt>Railtie</tt>, are scoped to the current engine. + # <tt>Rails::Engine</tt> you can access <tt>autoload_paths</tt>, <tt>eager_load_paths</tt> + # and <tt>autoload_once_paths</tt>, which, differently from a <tt>Railtie</tt>, are scoped to + # the current engine. # # class MyEngine < Rails::Engine # # Add a load path for this specific Engine @@ -455,9 +456,9 @@ module Rails end # Eager load the application by loading all ruby - # files inside autoload_paths. + # files inside eager_load paths. def eager_load! - config.autoload_paths.each do |load_path| + config.eager_load_paths.each do |load_path| matcher = /\A#{Regexp.escape(load_path)}\/(.*)\.rb\Z/ Dir.glob("#{load_path}/**/*.rb").sort.each do |file| require_dependency file.sub(matcher, '\1') @@ -557,6 +558,7 @@ module Rails # Freeze so future modifications will fail rather than do nothing mysteriously config.autoload_paths.freeze + config.eager_load_paths.freeze config.autoload_once_paths.freeze end @@ -669,7 +671,7 @@ module Rails end def _all_autoload_paths #:nodoc: - @_all_autoload_paths ||= (config.autoload_paths + config.autoload_once_paths).uniq + @_all_autoload_paths ||= (config.autoload_paths + config.eager_load_paths + config.autoload_once_paths).uniq end def _all_load_paths #:nodoc: diff --git a/railties/lib/rails/engine/configuration.rb b/railties/lib/rails/engine/configuration.rb index 2b23d8be38..10d1821709 100644 --- a/railties/lib/rails/engine/configuration.rb +++ b/railties/lib/rails/engine/configuration.rb @@ -4,7 +4,7 @@ module Rails class Engine class Configuration < ::Rails::Railtie::Configuration attr_reader :root - attr_writer :middleware, :autoload_once_paths, :autoload_paths + attr_writer :middleware, :eager_load_paths, :autoload_once_paths, :autoload_paths def initialize(root=nil) super() @@ -39,16 +39,16 @@ module Rails @paths ||= begin paths = Rails::Paths::Root.new(@root) - paths.add "app", autoload: true, glob: "*" + paths.add "app", eager_load: true, glob: "*" paths.add "app/assets", glob: "*" - paths.add "app/controllers", autoload: true - paths.add "app/helpers", autoload: true - paths.add "app/models", autoload: true - paths.add "app/mailers", autoload: true + paths.add "app/controllers", 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" - paths.add "app/controllers/concerns", autoload: true - paths.add "app/models/concerns", autoload: true + paths.add "app/controllers/concerns", eager_load: true + paths.add "app/models/concerns", eager_load: true paths.add "lib", load_path: true paths.add "lib/assets", glob: "*" @@ -76,13 +76,7 @@ module Rails end def eager_load_paths - ActiveSupport::Deprecation.warn "eager_load_paths is deprecated and all autoload_paths are now eagerly loaded." - autoload_paths - end - - def eager_load_paths=(paths) - ActiveSupport::Deprecation.warn "eager_load_paths is deprecated and all autoload_paths are now eagerly loaded." - self.autoload_paths = paths + @eager_load_paths ||= paths.eager_load end def autoload_once_paths diff --git a/railties/lib/rails/paths.rb b/railties/lib/rails/paths.rb index 80ba144441..de6795eda2 100644 --- a/railties/lib/rails/paths.rb +++ b/railties/lib/rails/paths.rb @@ -5,13 +5,13 @@ module Rails # paths by a Hash like API. It requires you to give a physical path on initialization. # # root = Root.new "/rails" - # root.add "app/controllers", autoload: true + # root.add "app/controllers", eager_load: true # # The command above creates a new root object and add "app/controllers" as a path. # This means we can get a <tt>Rails::Paths::Path</tt> object back like below: # # path = root["app/controllers"] - # path.autoload? # => true + # path.eager_load? # => true # path.is_a?(Rails::Paths::Path) # => true # # The +Path+ object is simply an enumerable and allows you to easily add extra paths: @@ -30,7 +30,7 @@ module Rails # root["config/routes"].inspect # => ["config/routes.rb"] # # The +add+ method accepts the following options as arguments: - # autoload, autoload_once and glob. + # eager_load, autoload, autoload_once and glob. # # Finally, the +Path+ object also provides a few helpers: # @@ -85,8 +85,7 @@ module Rails end def eager_load - ActiveSupport::Deprecation.warn "eager_load is deprecated and all autoload_paths are now eagerly loaded." - filter_by(:autoload?) + filter_by(:eager_load?) end def autoload_paths @@ -125,13 +124,9 @@ module Rails @glob = options[:glob] options[:autoload_once] ? autoload_once! : skip_autoload_once! + options[:eager_load] ? eager_load! : skip_eager_load! options[:autoload] ? autoload! : skip_autoload! options[:load_path] ? load_path! : skip_load_path! - - if !options.key?(:autoload) && options.key?(:eager_load) - ActiveSupport::Deprecation.warn "the :eager_load option is deprecated and all :autoload paths are now eagerly loaded." - options[:eager_load] ? autoload! : skip_autoload! - end end def children @@ -148,37 +143,22 @@ module Rails expanded.last end - %w(autoload_once autoload load_path).each do |m| + %w(autoload_once eager_load autoload load_path).each do |m| class_eval <<-RUBY, __FILE__, __LINE__ + 1 - def #{m}! # def autoload! - @#{m} = true # @autoload = true + def #{m}! # def eager_load! + @#{m} = true # @eager_load = true end # end # - def skip_#{m}! # def skip_autoload! - @#{m} = false # @autoload = false + def skip_#{m}! # def skip_eager_load! + @#{m} = false # @eager_load = false end # end # - def #{m}? # def autoload? - @#{m} # @autoload + def #{m}? # def eager_load? + @#{m} # @eager_load end # end RUBY end - def eager_load! - ActiveSupport::Deprecation.warn "eager_load paths are deprecated and all autoload paths are now eagerly loaded." - autoload! - end - - def skip_eager_load! - ActiveSupport::Deprecation.warn "eager_load paths are deprecated and all autoload paths are now eagerly loaded." - skip_autoload! - end - - def eager_load? - ActiveSupport::Deprecation.warn "eager_load paths are deprecated and all autoload paths are now eagerly loaded." - autoload? - end - def each(&block) @paths.each(&block) end |