Skip to content

Commit 2dfee9d

Browse files
authored
adds Selmer (#25)
* adding selmer * update readme
1 parent a6cd925 commit 2dfee9d

File tree

5 files changed

+71
-0
lines changed

5 files changed

+71
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ Here the list of libraries tested:
3737
| :white_check_mark: | [ring/jetty](./ring-jetty) | Web server | |
3838
| :white_check_mark: | [safely](./safely) | Circuit breaker | |
3939
| :white_check_mark: | [secure-random](./secure-random) | `SecureRandom` initialization | |
40+
| :white_check_mark: | [selmer](./selmer) | A fast, Django inspired template system for Clojure. | |
4041
| :x: | [system](./system) | Layer on top of components | *Buildtime error, see Readme* |
4142

4243

selmer/.gitignore

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/target
2+
/classes
3+
/checkouts
4+
profiles.clj
5+
pom.xml
6+
pom.xml.asc
7+
*.jar
8+
*.class
9+
/.lein-*
10+
/.nrepl-port
11+
.hgignore
12+
.hg/

selmer/README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Selmer
2+
3+
Testing whether [Selmer](https://github.com/yogthos/Selmer) can be used in a native binary image with GraalVM.
4+
5+
## Usage
6+
7+
Currently testing:
8+
9+
[selmer "1.12.18"]
10+
11+
Test with:
12+
13+
lein do clean, uberjar, native, run-native
14+
15+
16+
## Results
17+
`[selmer.parser]` :white_check_mark:
18+
`[selmer.filters]` :white_check_mark:

selmer/project.clj

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
(defproject selmer "0.1.0-SNAPSHOT"
2+
3+
:dependencies [[org.clojure/clojure "1.10.1"]
4+
[selmer "1.12.18"]]
5+
6+
:main simple.main
7+
8+
:uberjar-name "simple-main.jar"
9+
10+
:profiles {:uberjar {:aot :all}
11+
:dev {:plugins [[lein-shell "0.5.0"]]}}
12+
13+
:aliases
14+
{"native"
15+
["shell"
16+
"native-image" "--report-unsupported-elements-at-runtime" "--no-server"
17+
"--initialize-at-build-time"
18+
"-jar" "./target/${:uberjar-name:-${:name}-${:version}-standalone.jar}"
19+
"-H:Name=./target/${:name}"]
20+
21+
"run-native" ["shell" "./target/${:name}"]})

selmer/src/simple/main.clj

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
(ns simple.main
2+
(:require [selmer.parser :refer [render]]
3+
[selmer.filters :refer [add-filter!]]
4+
[clojure.string :as str])
5+
(:gen-class))
6+
7+
(defn -main []
8+
(add-filter! :embiginate str/upper-case)
9+
(println (render "Hello {{name}}!" {:name "GraalVM"}))
10+
(println (render "{{d|date:\"yyyy-MM-dd\"}}" {:d (java.util.Date.)}))
11+
(println (render "{{number|phone}}" {:number "01234 567890"}))
12+
(println (render "{{items|count}} item{{items|pluralize}}" {:items [1]}))
13+
(println (render "{{foo|rand-nth}}" {:foo [1 2 3]}))
14+
(println (render "{{data}}" {:data "<foo>"}))
15+
(println (render "{{data|safe}}" {:data "<foo>"}))
16+
(println (render "{{name|default-if-empty:\"I <3 ponies\"}}" {:name "GraalVM"}))
17+
(println (render "{% if xs|empty? %}foo{% endif %}" {:xs []}))
18+
(println (render "{{domain|hash:\"md5\"}}" {:domain "example.org"}))
19+
(println (render "{{shout|embiginate}}" {:shout "graalvm"})))

0 commit comments

Comments
 (0)