Merge pull request #1640 from phalphalak/separate-control-flow-from-version-parsing
Extract version parsing function out of parse-semantic-version.
This commit is contained in:
commit
77e35035fb
2 changed files with 20 additions and 4 deletions
|
@ -6,8 +6,8 @@
|
|||
|
||||
(def ^:dynamic *level* :patch)
|
||||
|
||||
(defn parse-semantic-version [version-string]
|
||||
"Create map representing the given version string. Raise exception if the
|
||||
(defn string->semantic-version [version-string]
|
||||
"Create map representing the given version string. Returns nil if the
|
||||
string does not follow guidelines setforth by Semantic Versioning 2.0.0,
|
||||
http://semver.org/"
|
||||
;; <MajorVersion>.<MinorVersion>.<PatchVersion>[-<BuildNumber | Qualifier >]
|
||||
|
@ -17,8 +17,14 @@
|
|||
(zipmap [:major :minor :patch]))
|
||||
qualifier (last (re-matches #".*-(.+)?" version-string))]
|
||||
(if-not (empty? version-map)
|
||||
(merge version-map {:qualifier qualifier})
|
||||
(main/abort "Unrecognized version string:" version-string))))
|
||||
(merge version-map {:qualifier qualifier}))))
|
||||
|
||||
(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
|
||||
"Given a version-map, return a string representing the version."
|
||||
|
|
|
@ -62,6 +62,16 @@
|
|||
:beta "1.0.0-beta1"
|
||||
: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
|
||||
(testing "Testing semantic version string parsing"
|
||||
(doseq [[args expected] valid-semver-version-values]
|
||||
|
|
Loading…
Reference in a new issue