@@ -4,19 +4,20 @@ case class Version(major: Int, minor: Int, patch: Int) {
4
4
}
5
5
6
6
object Version {
7
- private val versionRegex0 = " v?([0-9]+)\\ .([0-9]+)\\ .([0-9]+)" .r
8
- private val versionRegex1 = " v?([0-9]+)\\ .([0-9]+)\\ .([0-9]+)-(.+)" .r
9
- private val versionRegex2 = " ([0-9]+)\\ .([0-9]+)" .r
10
- private val versionRegex3 = " ([0-9]+)" .r
7
+ // the (#.+)? part allows republishing for a new Scala version
8
+ private val versionRegex0 = " v?([0-9]+)\\ .([0-9]+)\\ .([0-9]+)(#.+)?" .r
9
+ private val versionRegex1 = " v?([0-9]+)\\ .([0-9]+)\\ .([0-9]+)-(.+)(#.+)?" .r
10
+ private val versionRegex2 = " ([0-9]+)\\ .([0-9]+)(#.+)?" .r
11
+ private val versionRegex3 = " ([0-9]+)(#.+)?" .r
11
12
def parse (raw : String ): Option [Version ] = {
12
13
raw match {
13
- case versionRegex0(major, minor, patch) =>
14
+ case versionRegex0(major, minor, patch, _ ) =>
14
15
Some (Version (major.toInt, minor.toInt, patch.toInt))
15
- case versionRegex1(major, minor, patch, _) =>
16
+ case versionRegex1(major, minor, patch, _, _ ) =>
16
17
Some (Version (major.toInt, minor.toInt, patch.toInt))
17
- case versionRegex2(major, minor) =>
18
+ case versionRegex2(major, minor, _ ) =>
18
19
Some (Version (major.toInt, minor.toInt, 0 ))
19
- case versionRegex3(major) =>
20
+ case versionRegex3(major, _ ) =>
20
21
Some (Version (major.toInt, 0 , 0 ))
21
22
case _ =>
22
23
None
0 commit comments