format static method

PathDetails format(
  1. String path
)

Implementation

static PathDetails format(String path) {
  final segments =
      path.split('/').where((e) => e.isNotEmpty).toList(growable: false);
  final buffer = StringBuffer();
  final values = <String, String>{};
  for (int i = 0; i < segments.length; i++) {
    if (i.isEven) {
      buffer.write(segments[i]);
    } else {
      final key = '${_pluralize.singular(segments[i - 1])}_id';
      values[key] = segments[i];
      buffer
        ..write('{')
        ..write(key)
        ..write('}');
    }
    if (i < segments.length - 1) buffer.write('/');
  }
  return PathDetails._(
    path: path,
    format: buffer.toString(),
    lastSegment: segments.isEmpty ? '' : segments.last,
    values: Map.unmodifiable(values),
  );
}