def mkdir_p(path)
      parts = path.split(/[\\\/]/)
      parts.each_index do |i|
        next if parts[i] == ""
        subpath = File.join(*parts[0, i + 1])
        unless File.exists?(subpath)
          FileUtils.mkdir_p(subpath)
          @cache["directories"][subpath] = true
        end
      end
    end
def mkdir_p(path)
      parts = path.split(/[\\\/]/)
      parts.each_index do |i|
        next if parts[i] == ""
        subpath = File.join(*parts[0, i + 1])
        unless File.exists?(subpath)
          FileUtils.mkdir_p(subpath)
          @cache["directories"][subpath] = true
        end
      end
    end
Make any needed directories and record the ones that are created for
 removal upon a "clean" operation.

 @param path [String] Directory to create.

 @return [void]