/** * Parse all AsciiDoc files found in the base directory. * * @param baseDir the directory with all files to be rendered. * @return returns an array of 0 positions if the rendered output is written * to a file. */ public String[] convertDirectory(String baseDir) { final AsciiDocDirectoryWalker directoryWalker = new AsciiDocDirectoryWalker(baseDir); return asciidoctor.convertDirectory(directoryWalker, options); }
@Override protected boolean isAcceptedFile(File file) { String fileName = file.getName(); return isAsciidocExtension(fileName); }
private List<File> scanSourceFiles() { final List<File> asciidoctorFiles; if (sourceDocumentExtensions == null || sourceDocumentExtensions.isEmpty()) { final DirectoryWalker directoryWalker = new AsciiDocDirectoryWalker(sourceDirectory.getAbsolutePath()); asciidoctorFiles = directoryWalker.scan(); } else { final DirectoryWalker directoryWalker = new CustomExtensionDirectoryWalker(sourceDirectory.getAbsolutePath(), sourceDocumentExtensions); asciidoctorFiles = directoryWalker.scan(); } String absoluteSourceDirectory = sourceDirectory.getAbsolutePath(); for (Iterator<File> iter = asciidoctorFiles.iterator(); iter.hasNext(); ) { File f = iter.next(); do { // stop when we hit the source directory root if (absoluteSourceDirectory.equals(f.getAbsolutePath())) { break; } // skip if the filename or directory begins with _ if (f.getName().startsWith("_")) { iter.remove(); break; } } while ((f = f.getParentFile()) != null); } return asciidoctorFiles; }
@Override protected boolean isAcceptedFile(File file) { String fileName = file.getName(); return isAsciidocExtension(fileName); }
@Test public void only_asciidoc_files_should_be_returned() { DirectoryWalker abstractDirectoryWalker = new AsciiDocDirectoryWalker(classpath.getResource("src/documents").getPath()); List<File> asciidocFiles = abstractDirectoryWalker.scan(); // Converto to absolute paths, otherwise Hamcrest's matchers fails List<String> asciidocFilesPaths = new ArrayList<String>(); for (File f: asciidocFiles) { asciidocFilesPaths.add(f.getAbsolutePath()); } assertThat(asciidocFilesPaths, hasSize(4)); assertThat( asciidocFilesPaths, containsInAnyOrder( classpath.getResource("src/documents/sample.ad").getAbsolutePath(), classpath.getResource("src/documents/sample.adoc").getAbsolutePath(), classpath.getResource("src/documents/sample.asciidoc").getAbsolutePath(), classpath.getResource("src/documents/sample.asc").getAbsolutePath())); }
@Override protected boolean isAcceptedFile(File file) { String fileName = file.getName(); return isAsciidocExtension(fileName); }
@Test public void empty_directory_should_return_no_documents() { DirectoryWalker abstractDirectoryWalker = new AsciiDocDirectoryWalker(temporaryFolder.getRoot().getAbsolutePath()); List<File> asciidocFiles = abstractDirectoryWalker.scan(); assertThat(asciidocFiles, is(empty())); }
@Test public void none_existing_directories_should_return_no_documents() { DirectoryWalker abstractDirectoryWalker = new AsciiDocDirectoryWalker("my_udirectory"); List<File> asciidocFiles = abstractDirectoryWalker.scan(); assertThat(asciidocFiles, is(empty())); }
@Test public void all_files_from_directory_and_subdirectories_should_be_rendered_into_an_array() { File pathToWalk = classpath.getResource("src"); String[] allRenderedFiles = asciidoctor.convertDirectory(new AsciiDocDirectoryWalker( pathToWalk.getPath()), options().toFile(false).get()); assertThat(allRenderedFiles, is(arrayWithSize(4))); }
@Test public void all_files_from_directory_and_subdirectories_should_be_rendered_into_files_and_not_in_array() { File pathToWalk = classpath.getResource("src"); Map<String, Object> options = options().inPlace(false).safe(SafeMode.UNSAFE).toDir(testFolder.getRoot()) .asMap(); String[] allRenderedFiles = asciidoctor.convertDirectory( new AsciiDocDirectoryWalker(pathToWalk.getAbsolutePath()), options); assertThat(allRenderedFiles, is(arrayWithSize(0))); }