File tree Expand file tree Collapse file tree 3 files changed +23
-5
lines changed
main/clojure/clojure/tools/namespace
test/clojure/clojure/tools/namespace Expand file tree Collapse file tree 3 files changed +23
-5
lines changed Original file line number Diff line number Diff line change 96
96
([dir] (find-ns-decls-in-dir dir nil ))
97
97
([dir platform]
98
98
(keep #(ignore-reader-exception
99
- (let [[_ nom & more] (file/read-file-ns-decl % (:read-opts platform))]
100
- (list* 'ns (with-meta nom
101
- {:dir (.Name ^System.IO.DirectoryInfo dir) :file (.Name ^System.IO.FileInfo %)}) ; ; .getName ^java.io.File x 2
102
- more)))
99
+ (let [[_ nom & more :as decl] (file/read-file-ns-decl % (:read-opts platform))]
100
+ (when (and decl nom (symbol? nom))
101
+ (list* 'ns (with-meta nom
102
+ {:dir (.Name ^System.IO.DirectoryInfo dir) :file (.Name ^System.IO.FileInfo %)}) ; ; .getName ^java.io.File x 2
103
+ more))))
103
104
(find-sources-in-dir dir platform))))
104
105
105
106
(defn find-namespaces-in-dir
Original file line number Diff line number Diff line change 33
33
main-clj (help/create-source dir 'example.main :clj '[example.one])
34
34
one-cljc (help/create-source dir 'example.one :cljc '[example.two])
35
35
two-clj (help/create-source dir 'example.two :clj )
36
- two-cljs (help/create-source dir 'example.two :cljs )]
36
+ two-cljs (help/create-source dir 'example.two :cljs )
37
+ headless-clj (help/create-headless-source dir 'example.headless :clj )]
37
38
(is (every? #{(.Name ^System.IO.DirectoryInfo dir)} ; ; .getName ^java.io.File
38
39
(map #(-> % second meta :dir )
39
40
(find/find-ns-decls [dir]))))))
Original file line number Diff line number Diff line change 87
87
(list 'ns sym))]
88
88
(create-file full-path (into [ns-decl] contents)))))
89
89
90
+ (defn create-headless-source
91
+ " Creates a file at the correct path under base-dir for a file that
92
+ declares in-ns for namespace named sym, with file extension (keyword)
93
+ and will also require the dependencies (symbols). Optional contents
94
+ written after the ns declaration as by write-contents."
95
+ ([base-dir sym extension]
96
+ (create-headless-source base-dir sym extension nil nil ))
97
+ ([base-dir sym extension dependencies]
98
+ (create-headless-source base-dir sym extension dependencies nil ))
99
+ ([base-dir sym extension dependencies contents]
100
+ (let [full-path (into [base-dir] (source-path sym extension))
101
+ ins-decl (list 'in-ns (list 'quote sym))
102
+ deps-decl (when (seq dependencies)
103
+ (map #(list 'require `(quote ~%)) dependencies))]
104
+ (create-file full-path (filter identity (concat [ins-decl] deps-decl contents))))))
105
+
90
106
(defn same-files?
91
107
" True if files-a and files-b contain the same canonical File's,
92
108
regardless of order."
You can’t perform that action at this time.
0 commit comments