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