aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/paths.rb
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2012-10-29 06:02:16 -0700
committerRafael Mendonça França <rafaelmfranca@gmail.com>2012-10-29 06:02:16 -0700
commita53e46406ea409c2d652a24ff5ecf096e293c8c9 (patch)
tree243df579be1f25076e54980dbce41c2077bf42fd /railties/lib/rails/paths.rb
parentd40309a0b8faaea766f8cf89b36d2323a1d35d88 (diff)
parentf7de647f2cd099ecf6434fa4a0db1ec297f1c32d (diff)
downloadrails-a53e46406ea409c2d652a24ff5ecf096e293c8c9.tar.gz
rails-a53e46406ea409c2d652a24ff5ecf096e293c8c9.tar.bz2
rails-a53e46406ea409c2d652a24ff5ecf096e293c8c9.zip
Merge pull request #7587 from elia/fix-too-eager-loading
Should not eager_load app/assets
Diffstat (limited to 'railties/lib/rails/paths.rb')
-rw-r--r--railties/lib/rails/paths.rb18
1 files changed, 12 insertions, 6 deletions
diff --git a/railties/lib/rails/paths.rb b/railties/lib/rails/paths.rb
index 4ac3d88dc2..c24940816d 100644
--- a/railties/lib/rails/paths.rb
+++ b/railties/lib/rails/paths.rb
@@ -87,14 +87,15 @@ module Rails
protected
def filter_by(constraint)
- all = []
+ yes = []
+ no = []
+
all_paths.each do |path|
- if path.send(constraint)
- paths = path.existent
- paths -= path.children.map { |p| p.send(constraint) ? [] : p.existent }.flatten
- all.concat(paths)
- end
+ paths = path.existent + path.existent_base_paths
+ path.send(constraint) ? yes.concat(paths) : no.concat(paths)
end
+
+ all = yes - no
all.uniq!
all
end
@@ -123,6 +124,7 @@ module Rails
keys.delete(@current)
@root.values_at(*keys.sort)
end
+ deprecate :children
def first
expanded.first
@@ -194,6 +196,10 @@ module Rails
expanded.select { |d| File.directory?(d) }
end
+ def existent_base_paths
+ map { |p| File.expand_path(p, @root.path) }.select{ |f| File.exist? f }
+ end
+
alias to_a expanded
private