A simple flash function for use with caveman.

Posted on November 22, 2015 by blasut

Simple function I’ve been using in a caveman project, for session flashes.

(defun flash (&optional value)
  (if value
      (setf (gethash :flash *session*) value)
      (let ((msg (gethash :flash *session*)))
        (flash "")
        msg)))

When you want to add a message to your flash:

(defroute ("/people" :method :POST) (&key _parsed)
  (create-person _parsed)
  (flash "Created a new person.")
  (redirect "/people"))

To render:

(defroute "/" ()
  (render #P"index.html"
          (list  :flash (flash))))