aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorscgilardi <scgilardi@gmail.com>2008-04-19 20:03:43 +0000
committerscgilardi <scgilardi@gmail.com>2008-04-19 20:03:43 +0000
commitda17800b12d2c769adc24cc11f027257f7bd4345 (patch)
treec9fdcc26c9b6e819f77749a56e1704a77c23901a
parentfd927239c329bcc676094b72e7a3a8df008b518b (diff)
add vars, docs, dir after a suggestion by Paul Drummond
-rw-r--r--lib.clj26
1 files changed, 26 insertions, 0 deletions
diff --git a/lib.clj b/lib.clj
index b9322059..ad4c2fc7 100644
--- a/lib.clj
+++ b/lib.clj
@@ -114,6 +114,12 @@
(apply require-one sym :need-ns true options)
(apply refer sym options))
+(defn- ns-vars
+ "Returns a sorted list of symbols naming public vars in
+ a namespace"
+ [ns]
+ (sort (map first (ns-publics ns))))
+
;; Public
(defn require
@@ -158,6 +164,26 @@
[]
(sort @*libs*))
+(defn vars
+ "Returns a sorted sequence of symbols naming public vars in
+ a namespace"
+ [ns-sym]
+ (when-let ns (find-ns ns-sym)
+ (ns-vars ns)))
+
+(defn docs
+ "Prints documentation for the public names in a namespace"
+ [ns-sym]
+ (when-let ns (find-ns ns-sym)
+ (doseq item (ns-vars ns)
+ (print-doc (ns-resolve ns item)))))
+
+(defn dir
+ "Prints a sorted directory of public names in a namespace"
+ [ns-sym]
+ (doseq item (vars ns-sym)
+ (println item)))
+
(defn load-uri
"Loads Clojure source from a URI, which may be a java.net.URI
java.net.URL, or String. Accepts any URI scheme supported by