fix(default): Check for wrapped nil in filter (#162)
This commit is contained in:
@@ -9,6 +9,7 @@
|
|||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|
||||||
- Fixed rendering `{{ block.super }}` with several levels of inheritance
|
- Fixed rendering `{{ block.super }}` with several levels of inheritance
|
||||||
|
- Fixed checking dictionary values for nil in `default` filter
|
||||||
|
|
||||||
|
|
||||||
## 0.10.1
|
## 0.10.1
|
||||||
|
|||||||
@@ -11,7 +11,8 @@ func lowercase(_ value: Any?) -> Any? {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func defaultFilter(value: Any?, arguments: [Any?]) -> Any? {
|
func defaultFilter(value: Any?, arguments: [Any?]) -> Any? {
|
||||||
if let value = value {
|
// value can be optional wrapping nil, so this way we check for underlying value
|
||||||
|
if let value = value, String(describing: value) != "nil" {
|
||||||
return value
|
return value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -136,6 +136,14 @@ 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("checks for underlying nil value correctly") {
|
||||||
|
let template = Template(templateString: "Hello {{ user.name|default:\"anonymous\" }}")
|
||||||
|
let nilName: String? = nil
|
||||||
|
let user: [String: Any?] = ["name": nilName]
|
||||||
|
let result = try template.render(Context(dictionary: ["user": user]))
|
||||||
|
try expect(result) == "Hello anonymous"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
describe("join filter") {
|
describe("join filter") {
|
||||||
|
|||||||
Reference in New Issue
Block a user