Skip to content

Commit dca2e36

Browse files
author
Stuart Sierra
committed
c.t.n.find: shorter names for platforms; docs
Rename 'clojure-platform' to 'clj' and 'clojurescript-platform' to 'cljs'. Add docs and metadata for versions added/deprecated.
1 parent e932729 commit dca2e36

File tree

1 file changed

+63
-30
lines changed
  • src/main/clojure/clojure/tools/namespace

1 file changed

+63
-30
lines changed

src/main/clojure/clojure/tools/namespace/find.clj

Lines changed: 63 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,17 @@
1919
InputStreamReader)
2020
(java.util.jar JarFile JarEntry)))
2121

22-
(def clojure-platform
23-
"Definition of file extensions and reader options for Clojure (.clj
24-
and .cljc) source files."
22+
(def ^{:added "0.3.0"}
23+
clj
24+
"Platform definition of file extensions and reader options for
25+
Clojure (.clj and .cljc) source files."
2526
{:read-opts parse/clojure-read-opts
2627
:extensions file/clojure-extensions})
2728

28-
(def clojurescript-platform
29-
"Definition of file extensions and reader options for ClojureScript
30-
(.cljs and .cljc) source files."
29+
(def ^{:added "0.3.0"}
30+
cljs
31+
"Platform definition of file extensions and reader options for
32+
ClojureScript (.cljs and .cljc) source files."
3133
{:read-opts parse/clojurescript-read-opts
3234
:extensions file/clojurescript-extensions})
3335

@@ -39,11 +41,15 @@
3941

4042
(defn find-sources-in-dir
4143
"Searches recursively under dir for source files. Returns a sequence
42-
of File objects, in breadth-first sort order."
44+
of File objects, in breadth-first sort order.
45+
46+
Optional second argument is either clj (default) or cljs, both
47+
defined in clojure.tools.namespace.find."
48+
{:added "0.3.0"}
4349
([dir]
4450
(find-sources-in-dir dir nil))
4551
([^File dir platform]
46-
(let [{:keys [extensions]} (or platform clojure-platform)]
52+
(let [{:keys [extensions]} (or platform clj)]
4753
(->> (file-seq dir)
4854
(filter #(file/file-with-extension? % extensions))
4955
sort-files-breadth-first))))
@@ -53,23 +59,33 @@
5359
5460
Searches recursively under dir for Clojure source files (.clj, .cljc).
5561
Returns a sequence of File objects, in breadth-first sort order."
62+
{:added "0.2.0"
63+
:deprecated "0.3.0"}
5664
[^File dir]
57-
(find-sources-in-dir dir clojure-platform))
65+
(find-sources-in-dir dir clj))
5866

5967
(defn find-ns-decls-in-dir
6068
"Searches dir recursively for (ns ...) declarations in Clojure
61-
source files; returns the unevaluated ns declarations."
69+
source files; returns the unevaluated ns declarations.
70+
71+
Optional second argument platform is either clj (default) or cljs,
72+
both defined in clojure.tools.namespace.find."
73+
{:added "0.2.0"}
6274
([dir] (find-ns-decls-in-dir dir nil))
63-
([dir options]
64-
(keep #(file/read-file-ns-decl % options)
65-
(find-clojure-sources-in-dir dir))))
75+
([dir platform]
76+
(keep #(file/read-file-ns-decl % (:read-opts platform))
77+
(find-sources-in-dir dir platform))))
6678

6779
(defn find-namespaces-in-dir
6880
"Searches dir recursively for (ns ...) declarations in Clojure
69-
source files; returns the symbol names of the declared namespaces."
70-
([dir] (find-namespaces-in-dir dir))
71-
([dir options]
72-
(map second (find-ns-decls-in-dir dir options))))
81+
source files; returns the symbol names of the declared namespaces.
82+
83+
Optional second argument platform is either clj (default) or cljs,
84+
both defined in clojure.tools.namespace.find."
85+
{:added "0.3.0"}
86+
([dir] (find-namespaces-in-dir dir nil))
87+
([dir platform]
88+
(map second (find-ns-decls-in-dir dir platform))))
7389

7490
;;; Finding namespaces in JAR files
7591

@@ -79,13 +95,14 @@
7995

8096
(defn sources-in-jar
8197
"Returns a sequence of source file names found in the JAR file.
82-
Optional second argument is either clojure-platform or
83-
clojurescript-platform, both defined in this namespace.. Controls
84-
which file extensions are included."
98+
99+
Optional second argument platform is either clj (default) or cljs,
100+
both defined in clojure.tools.namespace.find."
101+
{:added "0.3.0"}
85102
([jar-file]
86103
(sources-in-jar jar-file nil))
87104
([^JarFile jar-file platform]
88-
(let [{:keys [extensions]} (or platform clojure-platform)]
105+
(let [{:keys [extensions]} (or platform clj)]
89106
(filter #(ends-with-extension % extensions)
90107
(classpath/filenames-in-jar jar-file)))))
91108

@@ -94,25 +111,32 @@
94111
95112
Returns a sequence of filenames ending in .clj or .cljc found in the
96113
JAR file."
114+
{:added "0.2.0"
115+
:deprecated "0.3.0"}
97116
[jar-file]
98-
(sources-in-jar jar-file clojure-platform))
117+
(sources-in-jar jar-file clj))
99118

100119
(defn read-ns-decl-from-jarfile-entry
101120
"Attempts to read a (ns ...) declaration from the named entry in the
102-
JAR file, and returns the unevaluated form. Returns nil if the read
103-
fails, or if the first form is not a ns declaration."
121+
JAR file, and returns the unevaluated form.
122+
123+
Optional third argument platform is either clj (default) or cljs,
124+
both defined in clojure.tools.namespace.find."
104125
([jarfile entry-name]
105126
(read-ns-decl-from-jarfile-entry jarfile entry-name nil))
106127
([^JarFile jarfile ^String entry-name platform]
107-
(let [{:keys [read-opts]} (or platform clojure-platform)]
128+
(let [{:keys [read-opts]} (or platform clj)]
108129
(with-open [rdr (PushbackReader.
109130
(io/reader
110131
(.getInputStream jarfile (.getEntry jarfile entry-name))))]
111132
(parse/read-ns-decl rdr read-opts)))))
112133

113134
(defn find-ns-decls-in-jarfile
114-
"Searches the JAR file for platform source files containing (ns ...)
115-
declarations; returns the unevaluated ns declarations."
135+
"Searches the JAR file for source files containing (ns ...)
136+
declarations; returns the unevaluated ns declarations.
137+
138+
Optional second argument platform is either clj (default) or cljs,
139+
both defined in clojure.tools.namespace.find."
116140
([jarfile]
117141
(find-ns-decls-in-jarfile jarfile nil))
118142
([^JarFile jarfile platform]
@@ -122,7 +146,10 @@
122146
(defn find-namespaces-in-jarfile
123147
"Searches the JAR file for platform source files containing (ns ...)
124148
declarations. Returns a sequence of the symbol names of the
125-
declared namespaces."
149+
declared namespaces.
150+
151+
Optional second argument platform is either clj (default) or cljs,
152+
both defined in clojure.tools.namespace.find."
126153
([jarfile]
127154
(find-namespaces-in-jarfile jarfile nil))
128155
([^JarFile jarfile platform]
@@ -136,7 +163,10 @@
136163
JAR files) for platform source files containing (ns...)
137164
declarations. Returns a sequence of the unevaluated ns declaration
138165
forms. Use with clojure.java.classpath to search Clojure's
139-
classpath."
166+
classpath.
167+
168+
Optional second argument platform is either clj (default) or cljs,
169+
both defined in clojure.tools.namespace.find."
140170
([files]
141171
(find-ns-decls files nil))
142172
([files platform]
@@ -151,7 +181,10 @@
151181
JAR files) for platform source files containing (ns...)
152182
declarations. Returns a sequence of the symbol names of the declared
153183
namespaces. Use with clojure.java.classpath to search Clojure's
154-
classpath."
184+
classpath.
185+
186+
Optional second argument platform is either clj (default) or cljs,
187+
both defined in clojure.tools.namespace.find."
155188
([files]
156189
(find-namespaces files nil))
157190
([files platform]

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy