fix: Allow overriding default filters/tags

This commit is contained in:
Kyle Fuller
2016-12-07 22:32:31 +00:00
parent 26f30cbd9d
commit 2331b11a52
2 changed files with 13 additions and 1 deletions

View File

@@ -7,7 +7,7 @@ public struct Environment {
public init(loader: Loader? = nil, extensions: [Extension]? = nil, templateClass: Template.Type = Template.self) {
self.templateClass = templateClass
self.loader = loader
self.extensions = [DefaultExtension()] + (extensions ?? [])
self.extensions = (extensions ?? []) + [DefaultExtension()]
}
public func loadTemplate(name: String) throws -> Template {

View File

@@ -49,6 +49,18 @@ func testFilter() {
try expect(try template.render(context)).toThrow(TemplateSyntaxError("No Repeat"))
}
$0.it("allows you to override a default filter") {
let template = Template(templateString: "{{ name|join }}")
let repeatExtension = Extension()
repeatExtension.registerFilter("join") { (value: Any?) in
return "joined"
}
let result = try template.render(Context(dictionary: context, environment: Environment(extensions: [repeatExtension])))
try expect(result) == "joined"
}
$0.it("allows whitespace in expression") {
let template = Template(templateString: "{{ name | uppercase }}")
let result = try template.render(Context(dictionary: ["name": "kyle"]))