Extract version parsing function out of parse-semantic-version.
Enables parsing of the semantic version without triggering an abort in case of a parse failure. Fix typo.
This commit is contained in:
parent
651370487d
commit
9920681736
2 changed files with 20 additions and 4 deletions
|
@ -6,8 +6,8 @@
|
||||||
|
|
||||||
(def ^:dynamic *level* :patch)
|
(def ^:dynamic *level* :patch)
|
||||||
|
|
||||||
(defn parse-semantic-version [version-string]
|
(defn string->semantic-version [version-string]
|
||||||
"Create map representing the given version string. Raise exception if the
|
"Create map representing the given version string. Returns nil if the
|
||||||
string does not follow guidelines setforth by Semantic Versioning 2.0.0,
|
string does not follow guidelines setforth by Semantic Versioning 2.0.0,
|
||||||
http://semver.org/"
|
http://semver.org/"
|
||||||
;; <MajorVersion>.<MinorVersion>.<PatchVersion>[-<BuildNumber | Qualifier >]
|
;; <MajorVersion>.<MinorVersion>.<PatchVersion>[-<BuildNumber | Qualifier >]
|
||||||
|
@ -17,8 +17,14 @@
|
||||||
(zipmap [:major :minor :patch]))
|
(zipmap [:major :minor :patch]))
|
||||||
qualifier (last (re-matches #".*-(.+)?" version-string))]
|
qualifier (last (re-matches #".*-(.+)?" version-string))]
|
||||||
(if-not (empty? version-map)
|
(if-not (empty? version-map)
|
||||||
(merge version-map {:qualifier qualifier})
|
(merge version-map {:qualifier qualifier}))))
|
||||||
(main/abort "Unrecognized version string:" version-string))))
|
|
||||||
|
(defn parse-semantic-version [version-string]
|
||||||
|
"Create map representing the given version string. Aborts with exit code 1
|
||||||
|
if the string does not follow guidelines setforth by Semantic Versioning 2.0.0,
|
||||||
|
http://semver.org/"
|
||||||
|
(or (string->semantic-version version-string)
|
||||||
|
(main/abort "Unrecognized version string:" version-string)))
|
||||||
|
|
||||||
(defn version-map->string
|
(defn version-map->string
|
||||||
"Given a version-map, return a string representing the version."
|
"Given a version-map, return a string representing the version."
|
||||||
|
|
|
@ -62,6 +62,16 @@
|
||||||
:beta "1.0.0-beta1"
|
:beta "1.0.0-beta1"
|
||||||
:rc "1.0.0-RC1"}]])
|
:rc "1.0.0-RC1"}]])
|
||||||
|
|
||||||
|
(deftest test-string->semantic-version
|
||||||
|
(testing "Testing semantic version string parsing"
|
||||||
|
(doseq [[args expected] valid-semver-version-values]
|
||||||
|
(testing (format "with valid version strings: %s" args)
|
||||||
|
(is (= (string->semantic-version args) expected))))
|
||||||
|
|
||||||
|
(testing "with invalid version strings."
|
||||||
|
(doseq [[semver-test-data] invalid-semver-version-values]
|
||||||
|
(is (nil? (string->semantic-version semver-test-data)))))))
|
||||||
|
|
||||||
(deftest test-parse-semver-version
|
(deftest test-parse-semver-version
|
||||||
(testing "Testing semantic version string parsing"
|
(testing "Testing semantic version string parsing"
|
||||||
(doseq [[args expected] valid-semver-version-values]
|
(doseq [[args expected] valid-semver-version-values]
|
||||||
|
|
Loading…
Reference in a new issue