Version.from constructor

Version.from(
  1. String version
)

Implementation

Version.from(this.version) {
  final hasBugfixNr = version.contains('+');
  bugfix = hasBugfixNr ? int.parse(version.split('+').last) : 0;
  String number = hasBugfixNr ? version.split('+').first : version;

  final versionNumbers =
      number.split('.').map((nr) => int.parse(nr)).toList();

  switch (versionNumbers.length) {
    case 1:
      x = 0;
      y = 0;
      z = versionNumbers[0];
      break;
    case 2:
      x = 0;
      y = versionNumbers[0];
      z = versionNumbers[1];
      break;
    case 3:
      x = versionNumbers[0];
      y = versionNumbers[1];
      z = versionNumbers[2];
      break;
    default:
      throw Exception('Could not parse $version into [Version] type!');
  }
}