module RuboCop::FileFinder
Common methods for finding files. @api private
Public Class Methods
root_level=(level)
click to toggle source
# File lib/rubocop/file_finder.rb, line 9 def self.root_level=(level) @root_level = level end
root_level?(path, stop_dir)
click to toggle source
# File lib/rubocop/file_finder.rb, line 13 def self.root_level?(path, stop_dir) (@root_level || stop_dir) == path.to_s end
Public Instance Methods
find_file_upwards(filename, start_dir, stop_dir = nil)
click to toggle source
# File lib/rubocop/file_finder.rb, line 17 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
find_last_file_upwards(filename, start_dir, stop_dir = nil)
click to toggle source
# File lib/rubocop/file_finder.rb, line 24 def find_last_file_upwards(filename, start_dir, stop_dir = nil) last_file = nil traverse_files_upwards(filename, start_dir, stop_dir) { |file| last_file = file } last_file end
Private Instance Methods
traverse_files_upwards(filename, start_dir, stop_dir) { |file| ... }
click to toggle source
# File lib/rubocop/file_finder.rb, line 32 def traverse_files_upwards(filename, start_dir, stop_dir) Pathname.new(start_dir).expand_path.ascend do |dir| file = dir + filename yield(file.to_s) if file.exist? break if FileFinder.root_level?(dir, stop_dir) end end