This commit is contained in:
Adam Fowler
2021-03-19 17:49:02 +00:00
parent 66cbb25e16
commit 3c50d1c15c
4 changed files with 15 additions and 7 deletions

View File

@@ -2,7 +2,8 @@
/// Lambda function. Can add this to object being rendered to filter contents of objects. /// Lambda function. Can add this to object being rendered to filter contents of objects.
/// ///
/// See http://mustache.github.io/mustache.5.html for more details on /// See http://mustache.github.io/mustache.5.html for more details on
/// mustache lambdas /// mustache lambdas. Lambdas work slightly differently in HummingbirdMustache though
/// as they are passed a template representing the contained text and not the raw text
/// e.g /// e.g
/// ``` /// ```
/// struct Object { /// struct Object {

View File

@@ -261,6 +261,7 @@ extension HBParser {
} }
extension HBParser { extension HBParser {
/// context used in parser error
public struct Context { public struct Context {
public let line: String public let line: String
public let lineNumber: Int public let lineNumber: Int

View File

@@ -1,14 +1,20 @@
extension HBMustacheTemplate { extension HBMustacheTemplate {
/// Error return by `HBMustacheTemplate.parse`. Includes information about where error occurred
public struct ParserError: Swift.Error { public struct ParserError: Swift.Error {
public let context: HBParser.Context public let context: HBParser.Context
public let error: Swift.Error public let error: Swift.Error
} }
/// Error generated by `HBMustacheTemplate.parse`
public enum Error: Swift.Error { public enum Error: Swift.Error {
/// the end section does not match the name of the start section
case sectionCloseNameIncorrect case sectionCloseNameIncorrect
/// tag was badly formatted
case unfinishedName case unfinishedName
/// was not expecting a section end
case expectedSectionEnd case expectedSectionEnd
/// set delimiter tag badly formatted
case invalidSetDelimiter case invalidSetDelimiter
} }

View File

@@ -1,17 +1,17 @@
/// Objects that can have a methods run on them. Mustache methods are specific to this implementation /// Objects that can have a transforms run on them. Mustache transforms are specific to this implementation
/// of Mustache. They allow you to process objects before they are rendered. /// of Mustache. They allow you to process objects before they are rendered.
/// ///
/// The syntax for applying methods is `{{method(variable)}}`. Methods can be applied to both /// The syntax for applying transforms is `{{method(variable)}}`. Transforms can be applied to both
/// variables and sections. /// variables, sections and inverted sections.
/// ///
/// A simple example would be ensuring a string is lowercase. /// A simple example would be ensuring a string is lowercase.
/// ``` /// ```
/// {{lowercased(myString)}} /// {{lowercased(myString)}}
/// ``` /// ```
/// If applying a method to a sequence then the closing element of the sequence should not include the /// If applying a transform to a sequence then the closing element of the sequence should include the
/// method name eg /// transform name eg
/// ``` /// ```
/// {{#reversed(sequence)}}{{.}}{{\sequence}} /// {{#reversed(sequence)}}{{.}}{{\reversed(sequence)}}
/// ``` /// ```
public protocol HBMustacheTransformable { public protocol HBMustacheTransformable {
func transform(_ name: String) -> Any? func transform(_ name: String) -> Any?