Module: FileFinder

Defined in:
lib/file_finder.rb

Class Method Summary collapse

Class Method Details

.explore_folder(folder = Dir.pwd, ignoreRules = []) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/file_finder.rb', line 26

def FileFinder.explore_folder(folder=Dir.pwd, ignoreRules=[])
	fileAcc = []
	ignoredPaths = [".", "..", ".git", ".xoltignore", "xolti.yml", "LICENSE"]
	ignoreRules += parse_xoltignore(folder)

	Dir.glob("#{folder}/{*,.*}")
		.delete_if {|x| ignoredPaths.include?(File.basename(x))}
		.delete_if do |x|
			basename = File.basename(x)
			toIgnore = false
			ignoreRules.each do |rule|
				if (rule[0] == "!" && File.fnmatch(rule[1..-1], basename))
					toIgnore = false
				elsif (File.fnmatch(rule, basename))
					toIgnore = true
				end
			end
			toIgnore
		end
		.each do |path|
			if File.directory?(path)
				fileAcc += explore_folder(path, ignoreRules)
			else
				fileAcc << path
			end
		end

	fileAcc
end