Sha256: aafe3fa5150a2fb730b3fd4a00a79b6977df504d1b409d07cae705972311e4a8
Contents?: true
Size: 922 Bytes
Versions: 1
Compression:
Stored size: 922 Bytes
Contents
# frozen_string_literal: true require 'pathname' module RuboCop # Common methods for finding files. module FileFinder def self.root_level=(level) @root_level = level end def self.root_level?(path) @root_level == path.to_s end def find_file_upwards(filename, start_dir) traverse_files_upwards(filename, start_dir) do |file| # minimize iteration for performance return file if file end end def find_last_file_upwards(filename, start_dir) last_file = nil traverse_files_upwards(filename, start_dir) do |file| last_file = file end last_file end private def traverse_files_upwards(filename, start_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? end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rbhint-0.87.1.rc1 | lib/rubocop/file_finder.rb |