diff --git a/.gitignore b/.gitignore
index 2cc3eef..1f4aa64 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@ target/
*.iml
.idea/
+.DS_Store
\ No newline at end of file
diff --git a/src/main/xquery/semver.xq b/src/main/xquery/semver.xqm
similarity index 98%
rename from src/main/xquery/semver.xq
rename to src/main/xquery/semver.xqm
index e22a46d..670b820 100644
--- a/src/main/xquery/semver.xq
+++ b/src/main/xquery/semver.xqm
@@ -40,6 +40,9 @@ xquery version "3.1";
module namespace semver = "http://exist-db.org/xquery/semver";
+declare namespace array="http://www.w3.org/2005/xpath-functions/array";
+declare namespace map="http://www.w3.org/2005/xpath-functions/map";
+
(:~ A regular expression for checking a SemVer version string
: @author David Fichtmueller
: @see https://github.com/semver/semver/pull/460
@@ -313,7 +316,10 @@ declare function semver:serialize($version as map(*)) {
: @return -1 if v1 < v2, 0 if v1 = v2, or 1 if v1 > v2.
:)
declare function semver:compare($v1 as xs:string, $v2 as xs:string) as xs:integer {
- semver:compare($parsed-v1, $parsed-v2, false())
+ let $parsed-v1 := semver:parse($v1)
+ let $parsed-v2 := semver:parse($v2)
+ return
+ semver:compare-parsed($parsed-v1, $parsed-v2)
};
(:~ Compare two versions (with an option to coerce invalid SemVer strings)
diff --git a/src/test/xquery/coerce.xqm b/src/test/xquery/coerce.xqm
index 465a0d4..6a7a2c0 100644
--- a/src/test/xquery/coerce.xqm
+++ b/src/test/xquery/coerce.xqm
@@ -28,7 +28,7 @@ xquery version "3.1";
module namespace stco = "http://exist-db.org/xquery/semver/test/coerce";
-import module namespace semver = "http://exist-db.org/xquery/semver" at "file:///Users/aretter/code/semver.xq/src/main/xquery/semver.xq";
+import module namespace semver = "http://exist-db.org/xquery/semver";
declare namespace test = "http://exist-db.org/xquery/xqsuite";
diff --git a/src/test/xquery/compare.xqm b/src/test/xquery/compare.xqm
index a9cb14e..410888b 100644
--- a/src/test/xquery/compare.xqm
+++ b/src/test/xquery/compare.xqm
@@ -68,7 +68,37 @@ function stc:lt-pre-release-dot() {
};
declare
- %test:assertEquals("false")
+ %test:assertEquals("true")
function stc:gt() {
- semver:lt("2.0.0", "1.0.0")
+ semver:gt("2.0.0", "1.0.0")
+};
+
+declare
+ %test:assertEquals("true")
+function stc:eq() {
+ semver:eq("1.0.0", "1.0.0")
+};
+
+declare
+ %test:assertEquals("true")
+function stc:ne() {
+ semver:ne("1.0.0", "2.0.0")
+};
+
+declare
+ %test:assertEquals("0")
+function stc:compare-eq() {
+ semver:compare("1.0.0", "1.0.0")
+};
+
+declare
+ %test:assertEquals("1")
+function stc:compare-gt() {
+ semver:compare("2.0.0", "1.0.0")
+};
+
+declare
+ %test:assertEquals("-1")
+function stc:compare-lt() {
+ semver:compare("1.0.0", "2.0.0")
};
diff --git a/xar-assembly.xml b/xar-assembly.xml
index 12be33f..cf4a9d9 100644
--- a/xar-assembly.xml
+++ b/xar-assembly.xml
@@ -39,7 +39,7 @@
http://exist-db.org/xquery/semver
${basedir}/src/main/xquery
- semver.xq
+ semver.xqm
content