Skip to content

Instantly share code, notes, and snippets.

@tolitius
Last active December 21, 2018 16:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tolitius/7b79405c0a300d159e91515d4fe05033 to your computer and use it in GitHub Desktop.
Save tolitius/7b79405c0a300d159e91515d4fe05033 to your computer and use it in GitHub Desktop.
(ns issue-104.core
(:require [mount.core :as mount :refer [defstate]]))
(mount/in-cljc-mode)
(defstate ^{:on-reload :noop} teststate
:start "hi")
(def +version+ "0.0.1")
(set-env!
:source-paths #{"src"}
:dependencies '[[org.clojure/clojure "1.10.0"]
[org.clojure/tools.namespace "0.2.11"]
[mount "0.1.15"]
[org.clojure/tools.logging "0.4.1"]
;; boot clj
[boot/core "2.8.2" :scope "provided"]
[adzerk/bootlaces "0.1.13" :scope "test"]
[adzerk/boot-logservice "1.2.0" :scope "test"]
[adzerk/boot-test "1.2.0" :scope "test"]
[tolitius/boot-check "0.1.11" :scope "test"]])
(require '[adzerk.bootlaces :refer :all]
'[adzerk.boot-test :as bt]
'[adzerk.boot-logservice :as log-service]
'[tolitius.boot-check :as check]
'[clojure.tools.logging :as log])
(bootlaces! +version+)
(def log4b
[:configuration
[:appender {:name "STDOUT" :class "ch.qos.logback.core.ConsoleAppender"}
[:encoder [:pattern "%-5level %logger{36} - %msg%n"]]]
[:root {:level "TRACE"}
[:appender-ref {:ref "STDOUT"}]]])
(deftask dev []
(alter-var-root #'log/*logger-factory*
(constantly (log-service/make-factory log4b)))
(repl))
$ boot dev
boot.user=> (require '[mount.core :as mount]
                     '[issue-104.core :as iss]
                     '[clojure.tools.namespace.repl :as tn])

boot.user=> iss/teststate
#object[mount.core.DerefableState 0x7367eb6b {:status :pending, :val nil}]

boot.user=> (mount/start)
{:started ["#'issue-104.core/teststate"]}

boot.user=> iss/teststate
#object[mount.core.DerefableState 0x7367eb6b {:status :ready, :val "hi"}]

boot.user=> @iss/teststate
"hi"

boot.user=> (tn/refresh)
:reloading ()
:ok

boot.user=> iss/teststate
#object[mount.core.DerefableState 0x7367eb6b {:status :ready, :val "hi"}]

boot.user=> @iss/teststate
"hi"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment