From ca67709947d065784b219f184a17ee20fcb38b3b Mon Sep 17 00:00:00 2001 From: Colin Okay Date: Tue, 8 Feb 2022 11:47:07 -0600 Subject: adding route variables to the documentation generator --- lazybones-documentation.lisp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'lazybones-documentation.lisp') diff --git a/lazybones-documentation.lisp b/lazybones-documentation.lisp index 16164c5..b8e1c34 100644 --- a/lazybones-documentation.lisp +++ b/lazybones-documentation.lisp @@ -32,6 +32,14 @@ (princ (if content-type content-type default-content-type )) (princ "*") newline + (a:when-let (vars (endpoint-route-vars ep)) + (princ "Route Variables: ") newline + (dolist (var vars) + (princ "- ") (princ var) + (a:when-let (val-parser (route-var-value-parser ep var)) + (princ ": ") (princ (strip-newlines (documentation val-parser 'function))))) + newline) + (when authorizer (princ "Authorization Required: ") newline @@ -51,6 +59,16 @@ > " string))) +(defun strip-newlines (string) + (str:replace-all '(#\newline) "" string)) + (defun function-or-function-name-p (thing) (or (functionp thing) (and (symbolp thing) (fboundp thing)))) + +(defun endpoint-route-vars (ep) + "return a list of route variables for endpoint EP" + (mapcar 'first (remove-if-not #'consp (endpoint-dispatch-pattern ep)))) + +(defun route-var-value-parser (ep var) + (second (assoc var (remove-if-not #'consp (endpoint-dispatch-pattern ep))))) -- cgit v1.2.3