]> gitweb.factorcode.org Git - factor.git/commitdiff
add "split-version"
authorMaximilian Lupke <simply.malu@googlemail.com>
Mon, 22 Feb 2010 19:53:29 +0000 (20:53 +0100)
committerMaximilian Lupke <simply.malu@googlemail.com>
Tue, 23 Feb 2010 12:25:33 +0000 (13:25 +0100)
extra/semantic-versioning/authors.txt [new file with mode: 0644]
extra/semantic-versioning/semantic-versioning-tests.factor [new file with mode: 0644]
extra/semantic-versioning/semantic-versioning.factor [new file with mode: 0644]

diff --git a/extra/semantic-versioning/authors.txt b/extra/semantic-versioning/authors.txt
new file mode 100644 (file)
index 0000000..28e54b9
--- /dev/null
@@ -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 (file)
index 0000000..9745cc9
--- /dev/null
@@ -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 (file)
index 0000000..116d5a5
--- /dev/null
@@ -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 ;