[#20] Ensure ns-map exists for code-only namespaces
This commit is contained in:
parent
7c39de6275
commit
c1530bd07e
6 changed files with 22 additions and 7 deletions
3
deps.edn
3
deps.edn
|
|
@ -3,7 +3,8 @@
|
|||
:aliases
|
||||
{:sci
|
||||
{:extra-deps
|
||||
{borkdude/sci {:mvn/version "0.0.13-alpha.27"}}}
|
||||
{borkdude/sci {:git/url "https://github.com/borkdude/sci"
|
||||
:sha "a7f8d05f08ab150621c2403dacdd57c47ea09ff4"}}}
|
||||
:test
|
||||
{:extra-deps
|
||||
{test-runner
|
||||
|
|
|
|||
|
|
@ -119,9 +119,11 @@
|
|||
read-fn)
|
||||
{})])
|
||||
namespace (when-let [v (get reply "vars")]
|
||||
(let [name (-> (get reply "name")
|
||||
bytes->string)]
|
||||
{:name name :vars (bencode->vars pod name v)}))
|
||||
(let [name-str (-> (get reply "name")
|
||||
bytes->string)
|
||||
name (symbol name-str)]
|
||||
{:name name
|
||||
:vars (bencode->vars pod name-str v)}))
|
||||
chan (get @chans id)
|
||||
promise? (instance? clojure.lang.IPending chan)
|
||||
exception (when (and promise? error?)
|
||||
|
|
|
|||
|
|
@ -7,6 +7,10 @@
|
|||
ns-name name
|
||||
sci-ns (sci/create-ns (symbol ns-name))]
|
||||
(sci/binding [sci/ns sci-ns]
|
||||
;; ensure ns map in ctx, see #20
|
||||
(swap! env update-in [:namespaces ns-name]
|
||||
(fn [ns-map]
|
||||
(if ns-map ns-map {:obj sci-ns})))
|
||||
(doseq [[var-name var-value] vars]
|
||||
(cond (ifn? var-value)
|
||||
(swap! env assoc-in [:namespaces ns-name var-name]
|
||||
|
|
|
|||
|
|
@ -86,7 +86,10 @@
|
|||
{"name" "pod.test-pod.loaded"
|
||||
"defer" "true"}
|
||||
{"name" "pod.test-pod.loaded2"
|
||||
"defer" "true"}]
|
||||
"defer" "true"}
|
||||
{"name" "pod.test-pod.only-code"
|
||||
"vars" [{"name" "foo"
|
||||
"code" "(defn foo [] 1)"}]}]
|
||||
"ops" {"shutdown" {}}})
|
||||
(recur))
|
||||
:invoke (let [var (-> (get message "var")
|
||||
|
|
|
|||
|
|
@ -48,6 +48,9 @@
|
|||
|
||||
(def fn-called (pod.test-pod/fn-call inc 2))
|
||||
|
||||
(require '[pod.test-pod.only-code :as only-code])
|
||||
(def should-be-1 (only-code/foo))
|
||||
|
||||
(require '[pod.test-pod.loaded2 :as loaded2])
|
||||
(def loaded (loaded2/loaded 1))
|
||||
|
||||
|
|
@ -70,4 +73,5 @@
|
|||
tagged
|
||||
other-tagged
|
||||
loaded
|
||||
fn-called]
|
||||
fn-called
|
||||
should-be-1]
|
||||
|
|
|
|||
|
|
@ -22,7 +22,8 @@
|
|||
[1 2 3]
|
||||
[[1] [1]]
|
||||
2
|
||||
3]
|
||||
3
|
||||
1]
|
||||
(concat ret (repeat ::nil)))]
|
||||
(if (instance? java.util.regex.Pattern expected)
|
||||
(is (re-find expected actual))
|
||||
|
|
|
|||
Loading…
Reference in a new issue