Skip to content

Instantly share code, notes, and snippets.

@jdf-id-au
jdf-id-au / config.clj
Created July 22, 2018 09:54
Use mount to control an application's "mode", and an atom to control feature knobs for each mode.
(ns server.config
(:require [mount.core :refer [defstate]))
(defstate mode :start :prod)
(def switchboard (atom {:dev {:feature-one :setting-a}
:prod {:feature-one :setting-b}}))
(defn set-feature! [name value]
(assert (not (instance? mount.core.DerefableState mode)))