apply method

  1. @override
String apply(
  1. String path, {
  2. required String pathWithoutSourceDir,
})
override

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;
}