module FileFinder

Public Class Methods

explore_folder(folder=Dir.pwd, ignore_rules=[]) click to toggle source
# File lib/file_finder.rb, line 31
def FileFinder.explore_folder(folder=Dir.pwd, ignore_rules=[])
        files = []
        ignored_paths = [".", "..", ".git", ".xoltignore", "xolti.yml", "LICENSE"]
        ignore_rules += parse_xoltignore(folder)

        Dir.glob("#{folder}/{*,.*}")
                .delete_if {|x| ignored_paths.include?(File.basename(x))}
                .each do |path|
                        # Do NOT ignore by default
                        ignore = :exclude
                        if File.directory?(path)
                                ignore_rules.each do |rule|
                                        ignore = rule.effect if rule.folder_match(path)
                                end
                                files += explore_folder(path, ignore_rules) if ignore == :exclude
                        else
                                ignore_rules.each do |rule|
                                        ignore = rule.effect if rule.file_match(path)
                                end
                                files << path if ignore == :exclude
                        end
                end
        files
end