Retrieves and stores preferences. The name should be a unique string.
; define the name we'll be using
(def ^:const pref-name "my-game.settings")
; store a single preference
(pref! pref-name :put-float "player-health" 40)
; store multiple preferences
(pref! pref-name :put {"player-health" 40
"player-x" 20
"player-y" 50})
; save the changes to the disk
(pref! pref-name :flush)
; retrieve a single preference
(pref! pref-name :get-float "player-health")
Options
:clear
:contains^String key
:flush
Makes sure the preferences are persisted.
:get
Returns a read only Map with all the key, objects of the preferences.
:get-boolean^String key
:get-boolean^String key, ^boolean def-value
:get-float^String key
:get-float^String key, ^float def-value
:get-integer^String key
:get-integer^String key, ^int def-value
:get-long^String key
:get-long^String key, ^long def-value
:get-string^String key
:get-string^String key, ^String def-value
:put^java.util.Map vals
:put-boolean^String key, ^boolean val
:put-float^String key, ^float val
:put-integer^String key, ^int val
:put-long^String key, ^long val
:put-string^String key, ^String val
:remove^String key
Source
(defmacro pref!
[name k & options]
`(let [^Preferences p# (if (string? ~name)
(app! :get-preferences ~name)
~name)]
(u/call! p# ~k ~@options)))