From cab2c8d1e77e00c8da7bf0b121b71edd13877a94 Mon Sep 17 00:00:00 2001 From: Michael Grosser Date: Thu, 7 Feb 2019 10:31:00 -0800 Subject: [PATCH] cleanup pattern matching --- lib/parallel_tests/test/runner.rb | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/lib/parallel_tests/test/runner.rb b/lib/parallel_tests/test/runner.rb index bd355b48..525e3745 100644 --- a/lib/parallel_tests/test/runner.rb +++ b/lib/parallel_tests/test/runner.rb @@ -209,23 +209,20 @@ def sort_by_filesize(tests) end def find_tests(tests, options = {}) - files_list = (tests || []).map do |file_or_folder| + suffix_pattern = options[:suffix] || test_suffix + include_pattern = options[:pattern] || // + exclude_pattern = options[:exclude_pattern] + + (tests || []).flat_map do |file_or_folder| if File.directory?(file_or_folder) files = files_in_folder(file_or_folder, options) - files.grep(options[:suffix] || test_suffix) - .grep(options[:pattern] || //) + files = files.grep(suffix_pattern).grep(include_pattern) + files -= files.grep(exclude_pattern) if exclude_pattern + files else file_or_folder end - end - - flat_files_list = files_list.uniq.flat_map { |i| i } - - if regex = options[:exclude_pattern] - flat_files_list.reject! { |file| file =~ regex } - end - - flat_files_list + end.uniq end def files_in_folder(folder, options={})