diff --git a/extra/semantic-versioning/authors.txt b/extra/semantic-versioning/authors.txt new file mode 100644 index 0000000000..28e54b92df --- /dev/null +++ b/extra/semantic-versioning/authors.txt @@ -0,0 +1 @@ +Maximilian Lupke \ No newline at end of file diff --git a/extra/semantic-versioning/semantic-versioning-tests.factor b/extra/semantic-versioning/semantic-versioning-tests.factor new file mode 100644 index 0000000000..9745cc94a2 --- /dev/null +++ b/extra/semantic-versioning/semantic-versioning-tests.factor @@ -0,0 +1,5 @@ +USING: semantic-versioning tools.test ; +IN: semantic-versioning.tests + +[ { 1 0 0 "dev1" } ] [ "1.0.0dev1" split-version ] unit-test +[ { 1 2 3 } ] [ "1.2.3" split-version ] unit-test diff --git a/extra/semantic-versioning/semantic-versioning.factor b/extra/semantic-versioning/semantic-versioning.factor new file mode 100644 index 0000000000..116d5a58a1 --- /dev/null +++ b/extra/semantic-versioning/semantic-versioning.factor @@ -0,0 +1,10 @@ +! Copyright (C) 2010 Maximilian Lupke. +! See http://factorcode.org/license.txt for BSD license. +USING: arrays ascii kernel math.parser sequences splitting ; +IN: semantic-versioning + +: split-version ( string -- array ) + "." split first3 dup [ digit? not ] find + [ cut [ [ string>number ] tri@ ] dip 4array ] + [ drop [ string>number ] tri@ 3array ] + if ;