PluginVersion constructor

PluginVersion(
  1. dynamic version, [
  2. bool flatNumbering = true
])

Constructs a version instance. Possible types for the version are:

  • int - depending on flatNumbering, parsed as "version" or "version.0"
  • double or String - if there's a point, parsed as "major.minor", otherwise depends on flatNumbering (see int).
  • null - flat version 0.

Implementation

PluginVersion(dynamic version, [bool flatNumbering = true]) {
  if (version == null) {
    // Null version is considered "0", equal to [zero].
    _major = null;
    _minor = 0;
  } else if (version is int) {
    _major = flatNumbering ? null : version;
    _minor = flatNumbering ? version : 0;
  } else if (version is String || version is double) {
    final vs = version.toString();
    final p = vs.indexOf('.');
    if (p < 0) {
      final v = int.parse(vs);
      _major = flatNumbering ? null : v;
      _minor = flatNumbering ? v : 0;
    } else {
      _major = int.parse(vs.substring(0, p));
      _minor = int.parse(vs.substring(p + 1));
    }
  } else {
    throw ArgumentError('Plugin version should be a number or a string');
  }
}