fix: Allow overriding default filters/tags
This commit is contained in:
@@ -7,7 +7,7 @@ public struct Environment {
|
|||||||
public init(loader: Loader? = nil, extensions: [Extension]? = nil, templateClass: Template.Type = Template.self) {
|
public init(loader: Loader? = nil, extensions: [Extension]? = nil, templateClass: Template.Type = Template.self) {
|
||||||
self.templateClass = templateClass
|
self.templateClass = templateClass
|
||||||
self.loader = loader
|
self.loader = loader
|
||||||
self.extensions = [DefaultExtension()] + (extensions ?? [])
|
self.extensions = (extensions ?? []) + [DefaultExtension()]
|
||||||
}
|
}
|
||||||
|
|
||||||
public func loadTemplate(name: String) throws -> Template {
|
public func loadTemplate(name: String) throws -> Template {
|
||||||
|
|||||||
@@ -49,6 +49,18 @@ func testFilter() {
|
|||||||
try expect(try template.render(context)).toThrow(TemplateSyntaxError("No Repeat"))
|
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") {
|
$0.it("allows whitespace in expression") {
|
||||||
let template = Template(templateString: "{{ name | uppercase }}")
|
let template = Template(templateString: "{{ name | uppercase }}")
|
||||||
let result = try template.render(Context(dictionary: ["name": "kyle"]))
|
let result = try template.render(Context(dictionary: ["name": "kyle"]))
|
||||||
|
|||||||
Reference in New Issue
Block a user