Support wildcard Swift versions

This commit is contained in:
Nick Lockwood
2020-07-28 18:30:38 +01:00
parent ab7ee2cbd4
commit eaef0d2ad3
3 changed files with 9 additions and 3 deletions
+1 -3
View File
@@ -103,9 +103,7 @@ public struct Version: RawRepresentable, Comparable, ExpressibleByStringLiteral,
public init?(rawValue: String) {
let rawValue = rawValue.trimmingCharacters(in: .whitespacesAndNewlines)
guard !rawValue.components(separatedBy: ".").contains(where: {
!CharacterSet.decimalDigits.contains($0.unicodeScalars.first ?? " ")
}) else {
guard CharacterSet.decimalDigits.contains(rawValue.unicodeScalars.first ?? " ") else {
return nil
}
self.rawValue = rawValue
+7
View File
@@ -50,4 +50,11 @@ class VersionTests: XCTestCase {
XCTAssertLessThan(version ?? "0", "4.0")
XCTAssertGreaterThan(version ?? "0", "2.0")
}
func testWildcardVersion() throws {
let version = Version(rawValue: "3.x")
XCTAssertNotNil(version)
XCTAssertLessThan(version ?? "0", "4.0")
XCTAssertGreaterThan(version ?? "0", "2.0")
}
}
+1
View File
@@ -2173,6 +2173,7 @@ extension VersionTests {
("testParsePreviewVersion", testParsePreviewVersion),
("testParseThreePartVersion", testParseThreePartVersion),
("testPreviewComparison", testPreviewComparison),
("testWildcardVersion", testWildcardVersion),
]
}