Skip to content

Instantly share code, notes, and snippets.

@duelinmarkers
Created November 27, 2012 19:46
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 duelinmarkers/4156536 to your computer and use it in GitHub Desktop.
Save duelinmarkers/4156536 to your computer and use it in GitHub Desktop.
"Why not to use my library clj-record" code examples
(defmodel widget db
(associations
(:has-many :sizes))
(validation
(:name "Name is required" #(not (empty? %)))))
; model configuration
(clj-record.meta/init-model-metadata "user")
(clj-record.core/set-db-spec "user" db)
(clj-record.core/set-table-name "user" "users")
; expose model metadata
(def model-name "user")
(def table-name (clj-record.core/table-name "user"))
(defn model-metadata [& args]
(apply clj-record.meta/model-metadata-for "user" args))
(defn table-name [] (clj-record.core/table-name "user"))
; data manipulation
(defn record-count
([] (clj-record.core/record-count "user"))
([attributes] (clj-record.core/record-count "user" attributes)))
(defn get-record [id]
(clj-record.core/get-record "user" id))
(defn all-records []
(clj-record.core/all-records "user"))
(defn find-records [attributes]
(clj-record.core/find-records "user" attributes))
; ... and so on.
(ns my.model.widget
(:require clj-record.boot
[my.model.config :refer (db)]))
(clj-record.core/init-model
(:associations
(has-many sizes))
(:validation
(:name "Name is required" #(not (empty? %)))))
@duelinmarkers
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment