diff --git a/Stencil/Variable.swift b/Stencil/Variable.swift index c41e60b..0d80a4d 100644 --- a/Stencil/Variable.swift +++ b/Stencil/Variable.swift @@ -6,7 +6,7 @@ class FilterExpression : Resolvable { let variable: Variable init(token: String, parser: TokenParser) throws { - let bits = token.characters.split("|").map(String.init) + let bits = token.characters.split("|").map({ String($0).trim(" ") }) if bits.isEmpty { filters = [] variable = Variable("") diff --git a/StencilSpecs/FilterSpec.swift b/StencilSpecs/FilterSpec.swift index 3490953..419007a 100644 --- a/StencilSpecs/FilterSpec.swift +++ b/StencilSpecs/FilterSpec.swift @@ -30,6 +30,12 @@ describe("template filters") { try expect(try template.render(context, namespace: namespace)).toThrow(TemplateSyntaxError("No Repeat")) } + + $0.it("allows whitespace in expression") { + let template = Template(templateString: "{{ name | uppercase }}") + let result = try template.render(Context(dictionary: ["name": "kyle"])) + try expect(result) == "KYLE" + } }