--- /dev/null
+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
--- /dev/null
+! 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 ;