From 6df64896f47d4e4f43ffbce2f0380ef217e485a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ralph=20K=C3=BChnert?= Date: Sat, 30 Aug 2025 17:13:26 +0200 Subject: [PATCH] Add / as a valid partialNameChar and use it in parse (#71) * Add / as a valid partialNameChar and use it in parse * maybe let's not keep "bla" in the tests --- Sources/Mustache/Template+Parser.swift | 4 ++-- Tests/MustacheTests/PartialTests.swift | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Sources/Mustache/Template+Parser.swift b/Sources/Mustache/Template+Parser.swift index 3aaed19..af992b2 100644 --- a/Sources/Mustache/Template+Parser.swift +++ b/Sources/Mustache/Template+Parser.swift @@ -441,7 +441,7 @@ extension MustacheTemplate { /// parse partial name static func parsePartialName(_ parser: inout Parser, state: ParserState) throws -> String { parser.read(while: \.isWhitespace) - let text = String(parser.read(while: self.sectionNameChars)) + let text = String(parser.read(while: self.partialNameChars)) parser.read(while: \.isWhitespace) guard try parser.read(string: state.endDelimiter) else { throw Error.unfinishedName } return text @@ -518,5 +518,5 @@ extension MustacheTemplate { private static let sectionNameCharsWithoutBrackets = Set("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-_?*") private static let sectionNameChars = Set("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-_?()*") - private static let partialNameChars = Set("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-_()") + private static let partialNameChars = Set("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-_?()*/") } diff --git a/Tests/MustacheTests/PartialTests.swift b/Tests/MustacheTests/PartialTests.swift index 4d33abf..5b82c96 100644 --- a/Tests/MustacheTests/PartialTests.swift +++ b/Tests/MustacheTests/PartialTests.swift @@ -23,7 +23,7 @@ final class PartialTests: XCTestCase { string: """

Names

{{#names}} - {{> user}} + {{> us/er}} {{/names}} """ ) @@ -33,7 +33,7 @@ final class PartialTests: XCTestCase { """ ) - let library = MustacheLibrary(templates: ["base": template, "user": template2]) + let library = MustacheLibrary(templates: ["base": template, "us/er": template2]) let object: [String: Any] = ["names": ["john", "adam", "claire"]] XCTAssertEqual(