[PathList] Get rid of unnecessary traversal with empty patterns

parent 1bae2834
...@@ -131,6 +131,7 @@ module Pod ...@@ -131,6 +131,7 @@ module Pod
patterns_array = Array(patterns) patterns_array = Array(patterns)
exact_matches = full_list & patterns_array exact_matches = full_list & patterns_array
patterns_array -= exact_matches patterns_array -= exact_matches
all_patterns = patterns_array.map do |pattern| all_patterns = patterns_array.map do |pattern|
if directory?(pattern) && dir_pattern if directory?(pattern) && dir_pattern
pattern += '/' unless pattern.end_with?('/') pattern += '/' unless pattern.end_with?('/')
...@@ -138,9 +139,12 @@ module Pod ...@@ -138,9 +139,12 @@ module Pod
end end
dir_glob_equivalent_patterns(pattern) dir_glob_equivalent_patterns(pattern)
end.flatten end.flatten
list = exact_matches + full_list.select do |path| list = exact_matches
all_patterns.any? do |p| unless all_patterns.empty?
File.fnmatch(p, path, File::FNM_CASEFOLD | File::FNM_PATHNAME) list += full_list.select do |path|
all_patterns.any? do |p|
File.fnmatch(p, path, File::FNM_CASEFOLD | File::FNM_PATHNAME)
end
end end
end end
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment