public function sanitiseVersion($version)
{
$test = strtolower($version);
$alphaQualifierPosition = strpos($test, 'alpha-');
$betaQualifierPosition = strpos($test, 'beta-');
$betaQualifierPosition2 = strpos($test, '-beta');
$rcQualifierPosition = strpos($test, 'rc-');
$rcQualifierPosition2 = strpos($test, '-rc');
$rcQualifierPosition3 = strpos($test, 'rc');
$devQualifiedPosition = strpos($test, 'dev');
if ($alphaQualifierPosition !== false) {
$betaRevision = substr($test, $alphaQualifierPosition + 6);
if (!$betaRevision) {
$betaRevision = 1;
}
$test = substr($test, 0, $alphaQualifierPosition) . '.a' . $betaRevision;
} elseif ($betaQualifierPosition !== false) {
$betaRevision = substr($test, $betaQualifierPosition + 5);
if (!$betaRevision) {
$betaRevision = 1;
}
$test = substr($test, 0, $betaQualifierPosition) . '.b' . $betaRevision;
} elseif ($betaQualifierPosition2 !== false) {
$betaRevision = substr($test, $betaQualifierPosition2 + 5);
if (!$betaRevision) {
$betaRevision = 1;
}
$test = substr($test, 0, $betaQualifierPosition2) . '.b' . $betaRevision;
} elseif ($rcQualifierPosition !== false) {
$betaRevision = substr($test, $rcQualifierPosition + 5);
if (!$betaRevision) {
$betaRevision = 1;
}
$test = substr($test, 0, $rcQualifierPosition) . '.rc' . $betaRevision;
} elseif ($rcQualifierPosition2 !== false) {
$betaRevision = substr($test, $rcQualifierPosition2 + 3);
if (!$betaRevision) {
$betaRevision = 1;
}
$test = substr($test, 0, $rcQualifierPosition2) . '.rc' . $betaRevision;
} elseif ($rcQualifierPosition3 !== false) {
$betaRevision = substr($test, $rcQualifierPosition3 + 5);
if (!$betaRevision) {
$betaRevision = 1;
}
$test = substr($test, 0, $rcQualifierPosition3) . '.rc' . $betaRevision;
} elseif ($devQualifiedPosition !== false) {
$betaRevision = substr($test, $devQualifiedPosition + 6);
if (!$betaRevision) {
$betaRevision = '';
}
$test = substr($test, 0, $devQualifiedPosition) . '.dev' . $betaRevision;
}
return $test;
}