class Utils::Grepper
def search
def search suffixes = Array(@args[?I]) visit = -> filename { s = filename.stat bn = filename.pathname.basename if !s || s.directory? && @config.search.prune?(bn) || s.file? && @config.search.skip?(bn) then @args[?v] and warn "Pruning #{filename.inspect}." prune elsif suffixes.empty? true else suffixes.include?(filename.suffix) end } find(*@roots, visit: visit) do |filename| match(filename) end @paths = @paths.sort_by(&:source_location) self end