This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-02-26
Channels
- # aleph (2)
- # aws-lambda (18)
- # beginners (81)
- # boot (3)
- # cider (25)
- # cljs-dev (274)
- # cljsjs (10)
- # clojars (25)
- # clojure (65)
- # clojure-austin (1)
- # clojure-brasil (2)
- # clojure-dev (33)
- # clojure-dusseldorf (6)
- # clojure-gamedev (3)
- # clojure-italy (17)
- # clojure-poland (3)
- # clojure-russia (7)
- # clojure-spec (48)
- # clojure-uk (45)
- # clojured (1)
- # clojurescript (26)
- # core-logic (2)
- # data-science (4)
- # datascript (6)
- # datomic (58)
- # defnpodcast (2)
- # docker (1)
- # duct (14)
- # figwheel (2)
- # fulcro (130)
- # graphql (3)
- # leiningen (1)
- # liberator (15)
- # luminus (5)
- # nrepl (1)
- # numerical-computing (1)
- # off-topic (45)
- # onyx (15)
- # re-frame (9)
- # reagent (3)
- # ring (1)
- # shadow-cljs (91)
- # spacemacs (8)
- # sql (23)
- # unrepl (38)
- # videos (2)
- # vim (12)
c'e' un modo piu' intelligente di settare temporaneamente variabili d'ambiente di una roba cosi?
(defmacro with-env
[[var value] & body]
`(do (alter-var-root #'env assoc ~var ~value)
(let [result# ~@body]
(alter-var-root #'env dissoc ~var)
result#)))
(with-env [:v 10]
(:v env))
volevo fargli almeno prendere come input una map invece ma questo mi ha scassato l'env 😄
(defmacro with-env
[bindings & body]
`(do (alter-var-root #'env merge ~bindings)
(let [result# ~@body
unbind-keys# (keys ~bindings)]
(alter-var-root #'env dissoc unbind-keys#)
result#)))
tra l'altro adesso env
e' diventato :v
😄
non e' chiaro come riaggiustarlo senza riavviarmi tutto il REPL
semplicemente in alcuni test
serve un modo di settare env variables prima di qualche chiamata e resettare dopo
lo stava facendo un collega in reata', con un semplice
alter-var-root '#env ...
function-to-call
alter-var-root '#env
che non e' il massimo della vitaquello ridefinisce tutto pero'
alter-var-root ti permette di passare assoc :x 1
per esempio
ma vabbeh si puo' probabilmente fare los tesso comunque in effetti
ok si ottimo