summaryrefslogtreecommitdiff
path: root/src/mulk/benki/util.clj
diff options
context:
space:
mode:
authorMatthias Andreas Benkard <code@mail.matthias.benkard.de>2011-11-05 18:45:04 +0100
committerMatthias Andreas Benkard <code@mail.matthias.benkard.de>2011-11-05 18:45:04 +0100
commit5ff55cd6309d570a5297c0b26dfd623b1fadd604 (patch)
treec37e9faae3dde2a56a96cd473abbb5882cbeea4f /src/mulk/benki/util.clj
Initial checkin.
Diffstat (limited to 'src/mulk/benki/util.clj')
-rw-r--r--src/mulk/benki/util.clj26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/mulk/benki/util.clj b/src/mulk/benki/util.clj
new file mode 100644
index 0000000..5b2e484
--- /dev/null
+++ b/src/mulk/benki/util.clj
@@ -0,0 +1,26 @@
+(ns mulk.benki.util
+ (:refer-clojure)
+ (:use [hiccup core page-helpers]
+ noir.core))
+
+
+(def fmt clojure.pprint/cl-format)
+
+
+(defonce #^:private finished-initializations (atom #{}))
+
+(defmacro do-once [key & body]
+ `(while (not (@(deref #'finished-initializations) key))
+ (let [fininit-copy# @(deref #'finished-initializations)]
+ (when (compare-and-set! (deref #'finished-initializations)
+ fininit-copy#
+ (conj fininit-copy# key))
+ (do ~@body)))))
+
+
+;; defpartial is just defn + html.
+(defpartial layout [title & content]
+ (html5
+ [:head [:title title]]
+ [:body [:h1 title]
+ content]))