aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib.clj12
1 files changed, 10 insertions, 2 deletions
diff --git a/lib.clj b/lib.clj
index d2126069..12f24a3a 100644
--- a/lib.clj
+++ b/lib.clj
@@ -192,13 +192,21 @@
(load-lib sym in ns)
@*libs*))))
+(defn- eval-option
+ "Evaluates an option which may be a symbol representing a var
+ or a literal (including nil)"
+ [option]
+ (if (symbol? option)
+ (deref (resolve option))
+ option))
+
(defn- load-with-options
"Load a lib with options expressed as sequential keywords and
values"
[sym & options]
(let [opts (apply hash-map options)
- in (:in opts)
- ns (:ns opts)
+ in (eval-option (:in opts))
+ ns (eval-option (:ns opts))
reload (:reload opts)
reload-all (:reload-all opts)
require (:require opts)