3dbd9b45cf55

Convert symbols to snake case instead of just downcasing
[view raw] [browse files]
author Steve Losh <steve@stevelosh.com>
date Tue, 28 Jul 2020 22:48:11 -0400
parents 5a32a34392a2
children b35951eca1b2
branches/tags (none)
files src/main.lisp

Changes

--- a/src/main.lisp	Tue Jul 28 21:28:29 2020 -0400
+++ b/src/main.lisp	Tue Jul 28 22:48:11 2020 -0400
@@ -257,10 +257,14 @@
 
 
 ;;;; Object Parsers -----------------------------------------------------------
+(defun lisp-case-to-snake-case (string)
+  "Convert a Lisp-cased string designator `\"FOO-BAR\"` into snake cased `\"foo_bar\"`."
+  (substitute #\_ #\- (string-downcase string)))
+
 (defclass json-class (standard-class)
   ((slot-name-to-json-name :accessor slot-name-to-json-name
                            :initarg :slot-name-to-json-name
-                           :initform 'string-downcase)
+                           :initform 'lisp-case-to-snake-case)
    (unknown-slots :accessor unknown-slots
                   :initarg :unknown-slots
                   :initform :discard)