lib/rubocop/file_finder.rb in rubocop-0.87.1 vs lib/rubocop/file_finder.rb in rubocop-0.88.0

- old
+ new

@@ -7,36 +7,36 @@ module FileFinder def self.root_level=(level) @root_level = level end - def self.root_level?(path) - @root_level == path.to_s + def self.root_level?(path, stop_dir) + (@root_level || stop_dir) == path.to_s end - def find_file_upwards(filename, start_dir) - traverse_files_upwards(filename, start_dir) do |file| + def find_file_upwards(filename, start_dir, stop_dir = nil) + traverse_files_upwards(filename, start_dir, stop_dir) do |file| # minimize iteration for performance return file if file end end - def find_files_upwards(filename, start_dir) - files = [] - traverse_files_upwards(filename, start_dir) do |file| - files << file + def find_last_file_upwards(filename, start_dir, stop_dir = nil) + last_file = nil + traverse_files_upwards(filename, start_dir, stop_dir) do |file| + last_file = file end - files + last_file end private - def traverse_files_upwards(filename, start_dir) + def traverse_files_upwards(filename, start_dir, stop_dir) Pathname.new(start_dir).expand_path.ascend do |dir| - break if FileFinder.root_level?(dir) - file = dir + filename yield(file.to_s) if file.exist? + + break if FileFinder.root_level?(dir, stop_dir) end end end end