Add Middleman::Util.all_files_under to get a recursive listing of files beneath a path, follows symlinks. Fixes #515

This commit is contained in:
Thomas Reynolds 2012-07-06 19:32:05 -07:00
parent b67d4e7c82
commit 4b03c5e2df
5 changed files with 57 additions and 45 deletions

View file

@ -74,6 +74,21 @@ module Middleman
File.fnmatch(matcher.to_s, path)
end
end
# Get a recusive list of files inside a set of paths.
# Works with symlinks.
#
# @param path A path string or Pathname
# @return [Array] An array of filenames
def self.all_files_under(*paths)
paths.flatten!
paths.map! { |p| Pathname(p) }
files = paths.select { |p| p.file? }
(paths - files).each do |dir|
files << all_files_under(dir.children)
end
files.flatten
end
# Simple shared cache implementation
class Cache