Skip to content

Commit

Permalink
Selmer: util/set-missing-value-formatter!
Browse files Browse the repository at this point in the history
  • Loading branch information
borkdude committed May 11, 2021
1 parent 00fd782 commit 5554619
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 7 deletions.
13 changes: 9 additions & 4 deletions feature-selmer/babashka/impl/selmer.clj
Expand Up @@ -5,7 +5,8 @@
[selmer.filters :as filters]
[selmer.parser]
[selmer.tags :as tags]
[selmer.util :as util]))
[selmer.util :as util]
[selmer.validator :as validator]))

(def spns (sci/create-ns 'selmer.parser nil))

Expand Down Expand Up @@ -72,8 +73,6 @@

(def sfns (sci/create-ns 'selmer.filters nil))

(def selmer-filters-ns (sci/create-ns 'selmer.filters sfns))

(def selmer-filters-namespace
{'add-filter! (sci/copy-var filters/add-filter! sfns)
'remove-filter! (sci/copy-var filters/remove-filter! sfns)})
Expand All @@ -97,4 +96,10 @@
'turn-on-escaping! (sci/copy-var turn-on-escaping! suns)
'*escape-variables* escape-variables
'with-escaping (sci/copy-var with-escaping suns)
'without-escaping (sci/copy-var without-escaping suns)})
'without-escaping (sci/copy-var without-escaping suns)
'set-missing-value-formatter! (sci/copy-var util/set-missing-value-formatter! suns)})

(def svns (sci/create-ns 'selmer.validator nil))

(def selmer-validator-namespace
{'validate-off! (sci/copy-var validator/validate-off! svns)})
4 changes: 3 additions & 1 deletion src/babashka/main.clj
Expand Up @@ -392,7 +392,9 @@ Use bb run --help to show this help output.
'selmer.filters
@(resolve 'babashka.impl.selmer/selmer-filters-namespace)
'selmer.util
@(resolve 'babashka.impl.selmer/selmer-util-namespace))))
@(resolve 'babashka.impl.selmer/selmer-util-namespace)
'selmer.validator
@(resolve 'babashka.impl.selmer/selmer-validator-namespace))))

(def imports
'{ArithmeticException java.lang.ArithmeticException
Expand Down
12 changes: 10 additions & 2 deletions test-resources/lib_tests/selmer/our_test.clj
Expand Up @@ -2,7 +2,8 @@
"Some additional tests we added ourselves"
(:require [clojure.test :as t :refer [deftest is testing]]
[selmer.parser :as selmer]
[selmer.util :as util]))
[selmer.util :as util]
[selmer.validator :as validator]))

(deftest escaping-test
(testing "escaping by default"
Expand All @@ -16,5 +17,12 @@
(is (= "&foo" (selmer/render "{% firstof foo bar %}" {:foo "&foo" :bar 2}))))
(testing "macros"
(is (= "&foo" (util/without-escaping (selmer/render "{% firstof foo bar %}" {:foo "&foo" :bar 2}))))
(is (= "&foo" (util/with-escaping (selmer/render "{% firstof foo bar %}" {:foo "&foo" :bar 2}))))))
(is (= "&foo" (util/with-escaping (selmer/render "{% firstof foo bar %}" {:foo "&foo" :bar 2})))))
(testing "missing value"
(util/set-missing-value-formatter! (constantly "<missing>"))
(is (= "<missing>" (selmer/render "{{ foo }}" {}))))
#_(testing "validator off"
(is (thrown? Exception (selmer/render "{% if foo %} yeah " {:foo true})))
(validator/validate-off!)
(is (selmer/render "{% if foo %} yeah " {:foo true}))))

0 comments on commit 5554619

Please sign in to comment.