diff options
author | scgilardi <scgilardi@gmail.com> | 2008-07-03 12:19:34 +0000 |
---|---|---|
committer | scgilardi <scgilardi@gmail.com> | 2008-07-03 12:19:34 +0000 |
commit | 1432520e97e282a39a873e68caf8dc53085129d4 (patch) | |
tree | 65485095008127ad49df76e3724870aababdfdbf | |
parent | 21b3892707c859e801c303047ec789a52439608c (diff) |
lib.clj: deref :in and :ns arguments if they are symbols
-rw-r--r-- | lib.clj | 12 |
1 files changed, 10 insertions, 2 deletions
@@ -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) |