hiding "update-meta!" and, and calling it via var (thx @DomKM)

This commit is contained in:
anatoly 2015-12-06 00:23:37 -05:00
parent b07b29f028
commit 57b63ddcaa

View file

@ -59,9 +59,7 @@
(reset! inst value) (reset! inst value)
(alter-var-root var (constantly value)))) (alter-var-root var (constantly value))))
;; (!) TODO: this should be private (needs thinking) (defn- update-meta! [path v]
;; it is public now, can be called by "defstate" on macro expansion
(defn update-meta! [path v]
(swap! meta-state assoc-in path v)) (swap! meta-state assoc-in path v))
(defn- record! [state-name f done] (defn- record! [state-name f done]
@ -134,7 +132,7 @@
resume (assoc :resume `(fn [] ~resume)))] resume (assoc :resume `(fn [] ~resume)))]
`(do `(do
(def ~state (DerefableState. ~state-name)) (def ~state (DerefableState. ~state-name))
(update-meta! [~state-name] (assoc ~s-meta :inst (atom (NotStartedState. ~state-name)) ((var update-meta!) [~state-name] (assoc ~s-meta :inst (atom (NotStartedState. ~state-name))
:var (var ~state))) :var (var ~state)))
(var ~state))))) (var ~state)))))