]> gitweb.factorcode.org Git - factor.git/commitdiff
A little gift for Joe
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Mon, 16 Mar 2009 02:25:19 +0000 (21:25 -0500)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Mon, 16 Mar 2009 02:25:19 +0000 (21:25 -0500)
extra/method-chains/authors.txt [new file with mode: 0644]
extra/method-chains/method-chains-tests.factor [new file with mode: 0644]
extra/method-chains/method-chains.factor [new file with mode: 0644]

diff --git a/extra/method-chains/authors.txt b/extra/method-chains/authors.txt
new file mode 100644 (file)
index 0000000..d4f5d6b
--- /dev/null
@@ -0,0 +1 @@
+Slava Pestov
\ No newline at end of file
diff --git a/extra/method-chains/method-chains-tests.factor b/extra/method-chains/method-chains-tests.factor
new file mode 100644 (file)
index 0000000..e1a18fa
--- /dev/null
@@ -0,0 +1,13 @@
+IN: method-chains.tests
+USING: method-chains tools.test arrays strings sequences kernel namespaces ;
+
+GENERIC: testing ( a b -- c )
+
+M: sequence testing nip reverse ;
+AFTER: string testing append ;
+BEFORE: array testing over prefix "a" set ;
+
+[ V{ 3 2 1 } ] [ 3 V{ 1 2 3 } testing ] unit-test
+[ "heyyeh" ] [ 4 "yeh" testing ] unit-test
+[ { 4 2 0 } ] [ 5 { 0 2 4 } testing ] unit-test
+[ { 5 0 2 4 } ] [ "a" get ] unit-test
\ No newline at end of file
diff --git a/extra/method-chains/method-chains.factor b/extra/method-chains/method-chains.factor
new file mode 100644 (file)
index 0000000..ae1801a
--- /dev/null
@@ -0,0 +1,7 @@
+! Copyright (C) 2009 Slava Pestov.
+! See http://factorcode.org/license.txt for BSD license.
+USING: kernel generic generic.parser words fry ;
+IN: method-chains
+
+: AFTER: (M:) dupd '[ [ _ (call-next-method) ] _ bi ] define ; parsing
+: BEFORE: (M:) over '[ _ [ _ (call-next-method) ] bi ] define ; parsing