code: public static void traverse(final File self, final Map<String, Object> options)
              throws FileNotFoundException, IllegalArgumentException {
          final Closure visit = (Closure) options.remove("visit");
          traverse(self, options, visit);
      }
docs: Invokes the closure specified with key 'visit' in the options Map
  for each descendant file in this directory tree. Convenience method
  for {@link #traverse(java.io.File, java.util.Map, groovy.lang.Closure)} allowing the 'visit' closure
  to be included in the options Map rather than as a parameter.
  
  @param self    a File (that happens to be a folder/directory)
  @param options a Map of options to alter the traversal behavior
  @throws FileNotFoundException    if the given directory does not exist
  @throws IllegalArgumentException if the provided File object does not represent a directory or illegal filter combinations are supplied
  @see #traverse(java.io.File, java.util.Map, groovy.lang.Closure)
  @since 1.7.1