aboutsummaryrefslogtreecommitdiffstats
path: root/railties
diff options
context:
space:
mode:
authorAaron Patterson <tenderlove@github.com>2018-09-26 14:21:15 -0700
committerGitHub <noreply@github.com>2018-09-26 14:21:15 -0700
commit7f870a5ba2aa9177aa4a0e03a9d027928ba60e49 (patch)
treeb4fb19def15c5033483ecebe25d4e762ee1a4dab /railties
parent6556898884d636c59baae008e42783b8d3e16440 (diff)
parentb42d246c5d020a46d5964d236eb7f0d857ef01e8 (diff)
downloadrails-7f870a5ba2aa9177aa4a0e03a9d027928ba60e49.tar.gz
rails-7f870a5ba2aa9177aa4a0e03a9d027928ba60e49.tar.bz2
rails-7f870a5ba2aa9177aa4a0e03a9d027928ba60e49.zip
Merge pull request #33970 from rails/eager-url-helpers
Eagerly build the routing helper module after routes are committed
Diffstat (limited to 'railties')
-rw-r--r--railties/lib/rails/engine.rb16
-rw-r--r--railties/lib/rails/engine/configuration.rb2
2 files changed, 14 insertions, 4 deletions
diff --git a/railties/lib/rails/engine.rb b/railties/lib/rails/engine.rb
index 6a13a84108..901934826b 100644
--- a/railties/lib/rails/engine.rb
+++ b/railties/lib/rails/engine.rb
@@ -403,6 +403,12 @@ module Rails
define_method(:railtie_helpers_paths) { railtie.helpers_paths }
end
+ unless mod.respond_to?(:railtie_include_helpers)
+ define_method(:railtie_include_helpers) { |klass, include_path_helpers|
+ railtie.routes.include_helpers(klass, include_path_helpers)
+ }
+ end
+
unless mod.respond_to?(:railtie_routes_url_helpers)
define_method(:railtie_routes_url_helpers) { |include_path_helpers = true| railtie.routes.url_helpers(include_path_helpers) }
end
@@ -473,9 +479,13 @@ module Rails
# files inside eager_load paths.
def eager_load!
config.eager_load_paths.each do |load_path|
- matcher = /\A#{Regexp.escape(load_path.to_s)}\/(.*)\.rb\Z/
- Dir.glob("#{load_path}/**/*.rb").sort.each do |file|
- require_dependency file.sub(matcher, '\1')
+ if File.file?(load_path)
+ require_dependency load_path
+ else
+ matcher = /\A#{Regexp.escape(load_path.to_s)}\/(.*)\.rb\Z/
+ Dir.glob("#{load_path}/**/*.rb").sort.each do |file|
+ require_dependency file.sub(matcher, '\1')
+ end
end
end
end
diff --git a/railties/lib/rails/engine/configuration.rb b/railties/lib/rails/engine/configuration.rb
index 6bf0406b21..7595272c03 100644
--- a/railties/lib/rails/engine/configuration.rb
+++ b/railties/lib/rails/engine/configuration.rb
@@ -38,6 +38,7 @@ module Rails
@paths ||= begin
paths = Rails::Paths::Root.new(@root)
+ paths.add "config/routes.rb", eager_load: true
paths.add "app", eager_load: true, glob: "{*,*/concerns}"
paths.add "app/assets", glob: "*"
paths.add "app/controllers", eager_load: true
@@ -55,7 +56,6 @@ module Rails
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 "db"
paths.add "db/migrate"