aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--railties/lib/rails/paths.rb31
1 files changed, 30 insertions, 1 deletions
diff --git a/railties/lib/rails/paths.rb b/railties/lib/rails/paths.rb
index b37421c09c..4ac3d88dc2 100644
--- a/railties/lib/rails/paths.rb
+++ b/railties/lib/rails/paths.rb
@@ -157,7 +157,25 @@ module Rails
path = File.expand_path(p, @root.path)
if @glob
- result.concat Dir[File.join(path, @glob)].sort
+ if File.directory? path
+ result.concat expand_dir(path, @glob)
+ else
+ # FIXME: I think we can remove this branch, but I'm not sure.
+ # Say the filesystem has this file:
+ #
+ # /tmp/foobar
+ #
+ # and someone adds this path:
+ #
+ # /tmp/foo
+ #
+ # with a glob of "*", then this function will return
+ #
+ # /tmp/foobar
+ #
+ # We need to figure out if that is desired behavior.
+ result.concat expand_file(path, @glob)
+ end
else
result << path
end
@@ -177,6 +195,17 @@ module Rails
end
alias to_a expanded
+
+ private
+ def expand_file(path, glob)
+ Dir[File.join(path, glob)].sort
+ end
+
+ def expand_dir(path, glob)
+ Dir.chdir(path) do
+ Dir.glob(@glob).map { |file| File.join path, file }.sort
+ end
+ end
end
end
end