allParentDirectories method

Iterable<Directory> allParentDirectories([
  1. bool predicate(
    1. Directory dir
    )?
])

Implementation

Iterable<Directory> allParentDirectories([
  bool Function(Directory dir)? predicate,
]) sync* {
  Directory current = this;
  while (true) {
    if (predicate?.call(current) ?? true) {
      yield current;
    }
    final parent = current.parent;
    if (canonicalize(parent.path) == canonicalize(current.path)) {
      break;
    }
    current = parent;
  }
}