incrementPreRelease method

VersionParser incrementPreRelease()

Implementation

VersionParser incrementPreRelease() {
  if (!isPreRelease) {
    throw Exception(
        'Cannot increment pre-release on a non-pre-release [Version]');
  }
  final newPreRelease = preRelease;

  var found = false;
  for (var i = newPreRelease.length - 1; i >= 0; i--) {
    final segment = newPreRelease[i];
    if (VersionParser._isNumeric(segment)) {
      var intVal = int.parse(segment);
      intVal++;
      newPreRelease[i] = intVal.toString();
      found = true;
      break;
    }
  }
  if (!found) {
    newPreRelease.add('1');
  }

  return VersionParser(major, minor, patch, preRelease: newPreRelease);
}