aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Pack <mikepackdev@gmail.com>2013-10-29 16:58:52 -0600
committerMike Pack <mikepackdev@gmail.com>2013-11-11 11:36:44 -0700
commitec3134739c6bf7cf6482feb46155293e2b09c45b (patch)
tree4495d43d5cb98378d5b1865454c0686e9d2219ce
parenteb6dd34136654c3c77280a5ba3c1e61abd77996e (diff)
downloadrails-ec3134739c6bf7cf6482feb46155293e2b09c45b.tar.gz
rails-ec3134739c6bf7cf6482feb46155293e2b09c45b.tar.bz2
rails-ec3134739c6bf7cf6482feb46155293e2b09c45b.zip
Allow Pathnames to be added to eager load paths
-rw-r--r--railties/CHANGELOG.md4
-rw-r--r--railties/lib/rails/engine.rb2
-rw-r--r--railties/test/application/initializers/load_path_test.rb14
3 files changed, 19 insertions, 1 deletions
diff --git a/railties/CHANGELOG.md b/railties/CHANGELOG.md
index 673da4e9be..bf09066cf1 100644
--- a/railties/CHANGELOG.md
+++ b/railties/CHANGELOG.md
@@ -1,3 +1,7 @@
+* Support for Pathnames in eager load paths.
+
+ *Mike Pack*
+
* Fixed missing line and shadow on service pages(404, 422, 500).
*Dmitry Korotkov*
diff --git a/railties/lib/rails/engine.rb b/railties/lib/rails/engine.rb
index e8adef2fd3..1296c0a843 100644
--- a/railties/lib/rails/engine.rb
+++ b/railties/lib/rails/engine.rb
@@ -465,7 +465,7 @@ module Rails
# files inside eager_load paths.
def eager_load!
config.eager_load_paths.each do |load_path|
- matcher = /\A#{Regexp.escape(load_path)}\/(.*)\.rb\Z/
+ 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
diff --git a/railties/test/application/initializers/load_path_test.rb b/railties/test/application/initializers/load_path_test.rb
index b36628ee37..cd05956356 100644
--- a/railties/test/application/initializers/load_path_test.rb
+++ b/railties/test/application/initializers/load_path_test.rb
@@ -71,6 +71,20 @@ module ApplicationTests
assert Zoo
end
+ test "eager loading accepts Pathnames" do
+ app_file "lib/foo.rb", <<-RUBY
+ module Foo; end
+ RUBY
+
+ add_to_config <<-RUBY
+ config.eager_load = true
+ config.eager_load_paths << Pathname.new("#{app_path}/lib")
+ RUBY
+
+ require "#{app_path}/config/environment"
+ assert Foo
+ end
+
test "load environment with global" do
$initialize_test_set_from_env = nil
app_file "config/environments/development.rb", <<-RUBY