]> gitweb.factorcode.org Git - factor.git/commitdiff
Don't treat . directories as vocab dirs.
authorNicholas Seckar <nseckar@gmail.com>
Mon, 4 May 2009 04:00:29 +0000 (21:00 -0700)
committerNicholas Seckar <nseckar@gmail.com>
Mon, 4 May 2009 04:00:29 +0000 (21:00 -0700)
Rename subdirs to (less general) vocab-subdirs.
Add all-vocabs-under and load-all-under.

basis/tools/vocabs/vocabs-tests.factor
basis/tools/vocabs/vocabs.factor

index 04e628d0806a57b6c9d09157d11459d8eb0944ba..a4430c07bcb9efdb0fd17f919f5f1d95b1a80dc7 100644 (file)
@@ -1,5 +1,5 @@
 IN: tools.vocabs.tests
-USING: tools.test tools.vocabs namespaces continuations ;
+USING: continuations namespaces tools.test tools.vocabs tools.vocabs.private ;
 
 [ ] [
     changed-vocabs get-global
@@ -7,3 +7,6 @@ USING: tools.test tools.vocabs namespaces continuations ;
     [ t ] [ "kernel" changed-vocab? ] unit-test
     [ "kernel" changed-vocab ] [ changed-vocabs set-global ] [ ] cleanup
 ] unit-test
+
+[ t ] [ "some-vocab" valid-vocab-dirname ] unit-test
+[ f ] [ ".git" valid-vocab-dirname ] unit-test
index 4b9a72a4439c7627104fe668d3a7f0850706c6da..7cd94827db121741eabeb733da6f0b8946402a5b 100644 (file)
@@ -205,15 +205,21 @@ M: vocab-link summary vocab-summary ;
 : set-vocab-authors ( authors vocab -- )\r
     dup vocab-authors-path set-vocab-file-contents ;\r
 \r
-: subdirs ( dir -- dirs )\r
+\r
+<PRIVATE\r
+: valid-vocab-dirname ( dirname -- ? )\r
+    dup empty? [ drop f ] [ first CHAR: . = not ] if ;\r
+PRIVATE>\r
+\r
+: vocab-subdirs ( dir -- dirs )\r
     [\r
-        [ link-info directory? ] filter\r
+        [ [ link-info directory? ] [ valid-vocab-dirname ] bi and ] filter\r
     ] with-directory-files natural-sort ;\r
 \r
 : (all-child-vocabs) ( root name -- vocabs )\r
     [\r
         vocab-dir append-path dup exists?\r
-        [ subdirs ] [ drop { } ] if\r
+        [ vocab-subdirs ] [ drop { } ] if\r
     ] keep [\r
         swap [ "." glue ] with map\r
     ] unless-empty ;\r
@@ -235,6 +241,11 @@ M: vocab-link summary vocab-summary ;
         dup [ "" vocabs-in-dir ] { } make\r
     ] { } map>assoc ;\r
 \r
+: all-vocabs-under ( prefix -- vocabs )\r
+    [\r
+        vocab-roots get [ over vocabs-in-dir ] each drop\r
+    ] { } make ;\r
+\r
 MEMO: all-vocabs-seq ( -- seq )\r
     all-vocabs values concat ;\r
 \r
@@ -252,6 +263,9 @@ MEMO: all-vocabs-seq ( -- seq )
 : load-everything ( -- )\r
     try-everything load-failures. ;\r
 \r
+: load-all-under ( prefix -- )\r
+    all-vocabs-under filter-unportable require-all load-failures. ;\r
+\r
 : unrooted-child-vocabs ( prefix -- seq )\r
     dup empty? [ CHAR: . suffix ] unless\r
     vocabs\r