apply method
applies the path
with any configured parts from path
and
formats them with mustache
Implementation
@override
String apply(String path, {required String pathWithoutSourceDir}) {
final originalParts = _separatePath(pathWithoutSourceDir);
final configuredParts = _separatePath(this.path);
for (var i = 0;; i++) {
if (i >= originalParts.length) {
if (i >= configuredParts.length) {
break;
}
return path;
}
if (i >= configuredParts.length) {
break;
}
final pathPart = originalParts[i];
final configuredPart = configuredParts[i];
if (pathPart != configuredPart) {
return path;
}
}
final index = configuredParts.length - 1;
final pathParts = _separatePath(_cleanPath(path));
final nameFormatted = name?.format();
if (nameFormatted != null) {
pathParts[index] = nameFormatted;
}
if (include != null) {
pathParts[index] = include!.apply(pathParts[index]);
}
final configuredPath = p.joinAll(pathParts);
return configuredPath;
}