initial commit

This commit is contained in:
Chris Allen 2013-01-29 23:25:33 -08:00
commit df9f44de4f
8 changed files with 128 additions and 0 deletions

12
.gitignore vendored Normal file
View file

@ -0,0 +1,12 @@
/target
/lib
/classes
/checkouts
pom.xml
pom.xml.asc
*.jar
*.class
.lein-deps-sum
.lein-failures
.lein-plugins
.lein-repl-history

13
README.md Normal file
View file

@ -0,0 +1,13 @@
# clojure-template-benchmarks
A Clojure library designed to ... well, that part is up to you.
## Usage
FIXME
## License
Copyright © 2013 FIXME
Distributed under the Eclipse Public License, the same as Clojure.

3
doc/intro.md Normal file
View file

@ -0,0 +1,3 @@
# Introduction to clojure-template-benchmarks
TODO: write [great documentation](http://jacobian.org/writing/great-documentation/what-to-write/)

11
project.clj Normal file
View file

@ -0,0 +1,11 @@
(defproject clojure-template-benchmarks "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:main clojure-template-benchmarks.core
:dependencies [[org.clojure/clojure "1.4.0"]
[criterium "0.3.1"]
[hiccup "1.0.2"]
[clabango "0.4"]
])

View file

@ -0,0 +1,79 @@
(ns clojure-template-benchmarks.core
(:use criterium.core
hiccup.core)
(:require [clabango.parser :refer [render render-file]]))
(def bar (str "bar"))
(defn simple-str []
(str "<span class=\"foo\">"
bar
"</span>"))
(defn list-str [ceil]
(str "<ul>"
(for [n (range 1 ceil)]
(str "<li>" n "</li>"))
"</ul>"))
(defn simple-hiccup []
(html [:span {:class "foo"} bar]))
(defn list-hiccup [ceil]
(html [:ul (for [x (range 1 ceil)]
[:li x])]))
(defn simple-clabango-no-fd []
(render (str "<span class=\"foo\">{{bar}}</span>") {:bar bar}))
(defn list-clabango-no-fd [ceil]
(render "<ul>{% for item in items %}<li>{{item}}</li>{% endfor %}</ul>" {:items (range 1 ceil)}))
(defn simple-clabango []
(render-file "clojure_template_benchmarks/templates/simple.html" {:bar bar}))
(defn list-clabango [ceil]
(render-file "clojure_template_benchmarks/templates/list.html" {:items (range 1 ceil)}))
(defn -main [& args]
;; (println (simple-hiccup))
;; (println (simple-clabango-no-fd))
;; (println (count (list-filler-hiccup)))
;; (println (count (list-filler-clabango-no-fd)))
(println "\n\n ***** str benchmarks ***** \n\n")
(with-progress-reporting (quick-bench (simple-str)))
(println "\n --- \n")
(with-progress-reporting (quick-bench (list-str 50)))
(println "\n --- \n")
(with-progress-reporting (quick-bench (list-str 1000)))
(println "\n --- \n")
(println "\n\n ***** hiccup benchmarks ***** \n\n")
(with-progress-reporting (quick-bench (simple-hiccup)))
(println "\n --- \n")
(with-progress-reporting (quick-bench (list-hiccup 50)))
(println "\n --- \n")
(with-progress-reporting (quick-bench (list-hiccup 1000)))
(println "\n --- \n")
(println "\n\n ***** clabango string literals ***** \n\n")
(quick-bench (simple-clabango-no-fd))
(println "\n --- \n")
(quick-bench (list-clabango-no-fd 50))
(println "\n --- \n")
(quick-bench (list-clabango-no-fd 1000))
(println "\n --- \n")
(println "\n\n ***** clabango from file template ***** \n\n")
(with-progress-reporting (quick-bench (simple-clabango)))
(println "\n --- \n")
(with-progress-reporting (quick-bench (list-clabango 50)))
(println "\n --- \n")
(with-progress-reporting (quick-bench (list-clabango 1000)))
(println "\n --- \n"))

View file

@ -0,0 +1 @@
<ul>{% for item in items %}<li>{{item}}</li>{% endfor %}</ul>

View file

@ -0,0 +1 @@
<span class="foo">{{bar}}</span>

View file

@ -0,0 +1,8 @@
(ns clojure-template-benchmarks.core-test
(:use clojure.test
clojure-template-benchmarks.core))
(deftest a-test
(testing "FIXME, I fail."
(is (= 0 1))))