src/packages/settings.lisp
(defpackage :murja.model.settings
(:use :cl)
(:export :setting-getter :all-setting-names :update-setting :defsetting :define-settings :create-settings)
(:import-from :com.inuoe.jzon :stringify :parse)
(:documentation "This package specifies macros define-settings and defsetting, which are used thus:
```
(define-settings
(site-name \"default-site\")
(test-setting 12345))
```
After running that form, one can get setting's current value by funcalling its symbol (for example: `(site-name) => \"default site\")`. If you wish to change
the value of this setting, you call its symbol with a parameter (`(site-name \"a new site\")`, after which calling it with 0-arity begins returning \"a new site\").
These changes are saved in murja's table `blog.Settings`."))