]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/semver/semver.factor
semver: fix semver-inc-patch, add some unit tests
[factor.git] / extra / semver / semver.factor
index 9cbad4817d1a3e319f0be70d5bbfd1df2f58edef..92f3f998dd9d11926a80096eec689c79adaad392 100644 (file)
@@ -1,10 +1,8 @@
 ! Copyright (C) 2020 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: accessors arrays assocs combinators
-combinators.short-circuit combinators.smart kernel math
-math.order math.parser multiline peg.ebnf sequences
-sequences.deep sequences.extras sequences.private sorting.human
-splitting strings ;
+USING: accessors arrays assocs combinators combinators.smart io
+kernel math math.order math.parser multiline peg.ebnf sequences
+sequences.deep sequences.extras splitting strings ;
 IN: semver
 
 ! caret - up to next major versions, aka only major version needs to match as long as minor/patch are >=
@@ -34,6 +32,8 @@ TUPLE: semver
     [ "." split [ string>number ] map first3 ] 2dip
     semver boa ;
 
+: <semver> ( str -- semver ) parse-semver ; inline
+
 : first-semver-slot ( semver -- class )
     {
         { [ dup major>> 0 > ] [ drop major ] }
@@ -65,6 +65,9 @@ TUPLE: semver
         } cleave
     ] "" append-outputs-as ;
 
+: semver. ( semver -- )
+    semver>string print ;
+
 : semver-inc-major ( semver -- semver )
     dup prerelease>> [
         [ 1 + ] change-major
@@ -93,7 +96,6 @@ TUPLE: semver
 : semver-inc-patch ( semver -- semver )
     dup prerelease>> [
         [ 1 + ] change-patch
-        0 >>patch
         "" >>prerelease
         "" >>build
     ] [