Skip to content

Instantly share code, notes, and snippets.

@lambder
Forked from jsofra/optional-config.clj
Created March 29, 2012 15:33
Show Gist options
  • Save lambder/2238571 to your computer and use it in GitHub Desktop.
Save lambder/2238571 to your computer and use it in GitHub Desktop.
Config using optional named parameters
(def ^:dynamic *config* nil)
(defn save [data & {:keys [config] :or {config *config*}}]
(println (format "Saved %s with %s" data config)))
;; => (save {:a 5 :b 6} :config {:some :config})
;; Saved {:a 5, :b 6} with {:some :config}
;; nil
;; => (binding [*config* {:some :config}] (save {:a 5 :b 6}))
;; Saved {:a 5, :b 6} with {:some :config}
;; nil
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment