diff --git a/src/clj_jtwig/standard_functions.clj b/src/clj_jtwig/standard_functions.clj index 062fcab..b894542 100644 --- a/src/clj_jtwig/standard_functions.clj +++ b/src/clj_jtwig/standard_functions.clj @@ -60,6 +60,10 @@ (apply min (first numbers)) (apply min numbers)))} + "pad_left" + {:fn (fn [s size & [padding-string]] + (StringUtils/leftPad s size (or padding-string " ")))} + "random" {:fn (fn [& values] (let [first-value (first values)] diff --git a/test/clj_jtwig/functions_test.clj b/test/clj_jtwig/functions_test.clj index 3241a0b..f2b9587 100644 --- a/test/clj_jtwig/functions_test.clj +++ b/test/clj_jtwig/functions_test.clj @@ -318,6 +318,14 @@ (is (= (render "{{ min(2, 1, 5, 3, 4) }}" nil) "1"))) + (testing "pad_left" + (is (= (render "{{ pad_left('bat', 5) }}" nil) + " bat")) + (is (= (render "{{ pad_left('bat', 3) }}" nil) + "bat")) + (is (= (render "{{ pad_left('bat', 5, 'x') }}" nil) + "xxbat"))) + (testing "random" (is (some #{(render "{{ ['apple', 'orange', 'citrus']|random }}" nil)} ["apple" "orange" "citrus"]))