feat(default filter): Support multiple defaults
This commit is contained in:
@@ -33,7 +33,17 @@ func lowercase(_ value: Any?) -> Any? {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func defaultFilter(value: Any?, arguments: [Any?]) -> Any? {
|
func defaultFilter(value: Any?, arguments: [Any?]) -> Any? {
|
||||||
return value ?? arguments.first as Any
|
if let value = value {
|
||||||
|
return value
|
||||||
|
}
|
||||||
|
|
||||||
|
for argument in arguments {
|
||||||
|
if let argument = argument {
|
||||||
|
return argument
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func joinFilter(value: Any?, arguments: [Any?]) throws -> Any? {
|
func joinFilter(value: Any?, arguments: [Any?]) throws -> Any? {
|
||||||
|
|||||||
@@ -101,6 +101,12 @@ func testFilter() {
|
|||||||
let result = try template.render(Context(dictionary: [:]))
|
let result = try template.render(Context(dictionary: [:]))
|
||||||
try expect(result) == "Hello World"
|
try expect(result) == "Hello World"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$0.it("supports multiple defaults") {
|
||||||
|
let template = Template(templateString: "Hello {{ name|default:a,b,c,\"World\" }}")
|
||||||
|
let result = try template.render(Context(dictionary: [:]))
|
||||||
|
try expect(result) == "Hello World"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
describe("join filter") {
|
describe("join filter") {
|
||||||
|
|||||||
Reference in New Issue
Block a user