Added a TextProvider with filter.

This commit is contained in:
JesseBrault0709 2023-06-16 15:40:01 +02:00
parent c7ba01380e
commit 3a1ecfe524

View File

@ -6,15 +6,26 @@ import com.jessebrault.ssg.util.ExtensionUtil
import org.slf4j.Logger import org.slf4j.Logger
import org.slf4j.LoggerFactory import org.slf4j.LoggerFactory
import java.util.function.BiPredicate
final class TextsProviders { final class TextsProviders {
private static final Logger logger = LoggerFactory.getLogger(TextsProviders) private static final Logger logger = LoggerFactory.getLogger(TextsProviders)
static CollectionProvider<Text> from(File textsDir, Collection<TextType> types) { static CollectionProvider<Text> from(File textsDir, Collection<TextType> types) {
from(textsDir, types) { file, relativePath -> true }
}
static CollectionProvider<Text> from(
File textsDir,
Collection<TextType> textTypes,
BiPredicate<File, String> filter
) {
CollectionProviders.fromDirectory(textsDir) { file, relativePath -> CollectionProviders.fromDirectory(textsDir) { file, relativePath ->
if (filter.test(file, relativePath)) {
def extension = ExtensionUtil.getExtension(relativePath) def extension = ExtensionUtil.getExtension(relativePath)
if (extension) { if (extension) {
def textType = types.find { it.ids.contains(extension) } def textType = textTypes.find { it.ids.contains(extension) }
if (!textType) { if (!textType) {
logger.warn('there is no TextType for file {}; skipping', file) logger.warn('there is no TextType for file {}; skipping', file)
return null return null
@ -25,6 +36,9 @@ final class TextsProviders {
logger.debug('there is no extension for file {}; skipping', file) logger.debug('there is no extension for file {}; skipping', file)
return null return null
} }
} else {
return null
}
} }
} }