Skip to content

Instantly share code, notes, and snippets.

@b1412
Created December 30, 2015 11:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save b1412/f5d90e604a72ef88318f to your computer and use it in GitHub Desktop.
Save b1412/f5d90e604a72ef88318f to your computer and use it in GitHub Desktop.
(alter-var-root
(var k/where*)
(fn [f]
#(f %1
(walk/prewalk
(fn [e]
(if (:korma.sql.utils/generated e)
(update e :korma.sql.utils/generated
(fn [k] (str/replace k "-" "_")))
e)) %2))))
(def underscore-kw (comp keyword #(clojure.string/replace % "-" "_") name))
(def dasherize-kw (comp keyword #(clojure.string/replace % "_" "-") name))
(def map-keys (fn [f m] (reduce-kv #(assoc %1 (f %2) %3) {} m)))
(defmacro defent [table & body]
`(do (declare ~table)
(defentity ~table
(prepare (partial map-keys underscore-kw))
(transform (partial map-keys dasherize-kw))
(table (-> (:name (meta (var ~table)))
(clojure.string/replace #"-" "_")
(keyword))))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment