module Ackr::Finder

All 'find a file' relatives.

Public Class Methods

all_files() { |file| ... } click to toggle source

Get all files to look for.

Files of interest are those who are

+ not directory
+ not binary
+ not inside a hidden folder

Returns nothing.

# File lib/ackr/finder.rb, line 15
def self.all_files
  Dir.glob('**/*', File::FNM_DOTMATCH).each do |file|
    next if File.directory?(file)
    next if inside_hidden_folder?(file)
    next if Ackr.binary?(file)

    next if EXCLUDE_DIRS.any? do |dir|
      file.start_with?(dir + File::Separator) ||
        file.include?(File::Separator + dir + File::Separator)
    end

    yield(file)
  end
end
inside_hidden_folder?(file) click to toggle source
# File lib/ackr/finder.rb, line 30
def self.inside_hidden_folder?(file)
  part_of_hidden_folder?(file) || part_of_hidden_subfolder?(file)
end

Private Class Methods

part_of_hidden_folder?(file) click to toggle source
# File lib/ackr/finder.rb, line 36
def self.part_of_hidden_folder?(file)
  file.start_with?('.') && file.include?(File::Separator)
end
part_of_hidden_subfolder?(file) click to toggle source
# File lib/ackr/finder.rb, line 40
def self.part_of_hidden_subfolder?(file)
  file =~ /\/\..*\//
end