module FakeFS::FileSystem

def find_recurser(dir, parts)

def find_recurser(dir, parts)
  return [] unless dir.respond_to? :[]
  pattern , *parts = parts
  matches = dir.reject {|k,v| /\A#{pattern.gsub('?','.').gsub('*', '.*')}\Z/ !~ k }.values
  if parts.empty? # we're done recursing
    matches
  else
    matches.map{|entry| find_recurser(entry, parts) }
  end
end