aboutsummaryrefslogtreecommitdiffstats
path: root/railties
diff options
context:
space:
mode:
authorSimon Jefford <simon.jefford@gmail.com>2009-03-05 18:50:52 -0600
committerJoshua Peek <josh@joshpeek.com>2009-03-05 18:50:52 -0600
commite97180c273ada9b252ddf42d340d2947a509cb26 (patch)
treef1c26def30693463c7a657b79a47884a91efb59c /railties
parent3191535ff0912e751dcf411c57923ec79b72944d (diff)
downloadrails-e97180c273ada9b252ddf42d340d2947a509cb26.tar.gz
rails-e97180c273ada9b252ddf42d340d2947a509cb26.tar.bz2
rails-e97180c273ada9b252ddf42d340d2947a509cb26.zip
Ensure that loading metals from the main app and engines works on older Ruby versions [#2143 state:resolved]
Signed-off-by: Joshua Peek <josh@joshpeek.com>
Diffstat (limited to 'railties')
-rw-r--r--railties/lib/rails/rack/metal.rb8
-rw-r--r--railties/test/metal_test.rb9
2 files changed, 14 insertions, 3 deletions
diff --git a/railties/lib/rails/rack/metal.rb b/railties/lib/rails/rack/metal.rb
index bce59f4c78..78b8a01449 100644
--- a/railties/lib/rails/rack/metal.rb
+++ b/railties/lib/rails/rack/metal.rb
@@ -15,9 +15,11 @@ module Rails
metal_glob = metal_paths.map{ |base| "#{base}/**/*.rb" }
all_metals = {}
- Dir[*metal_glob].sort.map do |file|
- file = file.match(matcher)[1]
- all_metals[file.classify] = file
+ metal_glob.each do |glob|
+ Dir[glob].sort.map do |file|
+ file = file.match(matcher)[1]
+ all_metals[file.classify] = file
+ end
end
load_list = requested_metals || all_metals.keys
diff --git a/railties/test/metal_test.rb b/railties/test/metal_test.rb
index a31f4ab273..143efdda11 100644
--- a/railties/test/metal_test.rb
+++ b/railties/test/metal_test.rb
@@ -41,6 +41,15 @@ class MetalTest < Test::Unit::TestCase
end
end
+ def test_metal_finding_should_work_with_multiple_metal_paths_in_185_and_below
+ use_appdir("singlemetal") do
+ engine_metal_path = "#{File.dirname(__FILE__)}/fixtures/plugins/engines/engine/app/metal"
+ Rails::Rack::Metal.metal_paths << engine_metal_path
+ $LOAD_PATH << engine_metal_path
+ assert_equal(["FooMetal", "EngineMetal"], found_metals_as_string_array)
+ end
+ end
+
private
def use_appdir(root)