// retoor <retoor@molodetz.nl>
import "jinja" for Environment, DictLoader
var env = Environment.new(DictLoader.new({
"if_true": "{\% if show \%}visible{\% endif \%}",
"if_false": "{\% if hide \%}visible{\% endif \%}",
"if_else": "{\% if show \%}yes{\% else \%}no{\% endif \%}",
"if_elif": "{\% if x == 1 \%}one{\% elif x == 2 \%}two{\% else \%}other{\% endif \%}",
"compare": "{\% if a > b \%}greater{\% elif a < b \%}less{\% else \%}equal{\% endif \%}",
"and_or": "{\% if a and b \%}both{\% elif a or b \%}one{\% else \%}none{\% endif \%}",
"not": "{\% if not hidden \%}shown{\% endif \%}",
"in_list": "{\% if item in items \%}found{\% else \%}missing{\% endif \%}",
"is_even": "{\% if num is even \%}even{\% else \%}odd{\% endif \%}",
"is_defined": "{\% if var is defined \%}defined{\% else \%}undefined{\% endif \%}",
"is_not": "{\% if num is not odd \%}not odd{\% endif \%}",
"ternary": "{{ \"yes\" if show else \"no\" }}"
}))
System.print(env.getTemplate("if_true").render({"show": true})) // expect: visible
System.print(env.getTemplate("if_false").render({"hide": false})) // expect:
System.print(env.getTemplate("if_else").render({"show": false})) // expect: no
System.print(env.getTemplate("if_elif").render({"x": 2})) // expect: two
System.print(env.getTemplate("compare").render({"a": 5, "b": 3})) // expect: greater
System.print(env.getTemplate("and_or").render({"a": true, "b": false})) // expect: one
System.print(env.getTemplate("not").render({"hidden": false})) // expect: shown
System.print(env.getTemplate("in_list").render({"item": "b", "items": ["a", "b", "c"]})) // expect: found
System.print(env.getTemplate("is_even").render({"num": 4})) // expect: even
System.print(env.getTemplate("is_defined").render({"var": "something"})) // expect: defined
System.print(env.getTemplate("is_defined").render({})) // expect: undefined
System.print(env.getTemplate("is_not").render({"num": 4})) // expect: not odd
System.print(env.getTemplate("ternary").render({"show": true})) // expect: yes