feat(filters): Add a join filter

This commit is contained in:
Kyle Fuller
2016-11-27 19:47:50 +00:00
parent dfd57e9571
commit 9fdbbc99e9
5 changed files with 43 additions and 0 deletions

View File

@@ -35,3 +35,19 @@ func lowercase(_ value: Any?) -> Any? {
func defaultFilter(value: Any?, arguments: [Any?]) -> Any? {
return value ?? arguments.first as Any
}
func joinFilter(value: Any?, arguments: [Any?]) throws -> Any? {
guard arguments.count == 1 else {
throw TemplateSyntaxError("'join' filter takes a single argument")
}
guard let separator = arguments.first as? String else {
throw TemplateSyntaxError("'join' filter takes a separator as string")
}
if let value = value as? [String] {
return value.joined(separator: separator)
}
return nil
}