|
// retoor <retoor@molodetz.nl>
|
|
|
|
import "jinja" for Environment, DictLoader
|
|
|
|
var env = Environment.new(DictLoader.new({
|
|
"math": "{{ 2 + 3 * 4 }}",
|
|
"paren": "{{ (2 + 3) * 4 }}",
|
|
"mod": "{{ 10 \% 3 }}",
|
|
"div": "{{ 10 / 4 }}",
|
|
"neg": "{{ -5 }}",
|
|
"compare_chain": "{\% if 1 < 2 and 2 < 3 \%}yes{\% endif \%}",
|
|
"bool_and": "{{ true and false }}",
|
|
"bool_or": "{{ true or false }}",
|
|
"bool_not": "{{ not false }}",
|
|
"string_in": "{\% if \"b\" in \"abc\" \%}found{\% endif \%}",
|
|
"list_in": "{\% if 2 in [1, 2, 3] \%}found{\% endif \%}",
|
|
"nested_access": "{{ data.items[0].name }}",
|
|
"filter_chain": "{{ text|trim|upper }}",
|
|
"method_call": "{{ items|join(\", \")|upper }}"
|
|
}))
|
|
|
|
System.print(env.getTemplate("math").render({})) // expect: 14
|
|
System.print(env.getTemplate("paren").render({})) // expect: 20
|
|
System.print(env.getTemplate("mod").render({})) // expect: 1
|
|
System.print(env.getTemplate("div").render({})) // expect: 2.5
|
|
System.print(env.getTemplate("neg").render({})) // expect: -5
|
|
System.print(env.getTemplate("compare_chain").render({})) // expect: yes
|
|
System.print(env.getTemplate("bool_and").render({})) // expect: false
|
|
System.print(env.getTemplate("bool_or").render({})) // expect: true
|
|
System.print(env.getTemplate("bool_not").render({})) // expect: true
|
|
System.print(env.getTemplate("string_in").render({})) // expect: found
|
|
System.print(env.getTemplate("list_in").render({})) // expect: found
|
|
System.print(env.getTemplate("nested_access").render({"data": {"items": [{"name": "test"}]}})) // expect: test
|
|
System.print(env.getTemplate("filter_chain").render({"text": " hello "})) // expect: HELLO
|
|
System.print(env.getTemplate("method_call").render({"items": ["a", "b", "c"]})) // expect: A, B, C
|