{% map <Variable> into <Name> using <ItemName> %}…{% endmap %}
Apply a map operator to an array, and store the result into a new array variable <Name> in the current context.
Inside the map loop, a maploop special variable is available (akin to the forloop variable in for nodes). It exposes maploop.counter, maploop.first, maploop.last and maploop.item.
camelToSnakeCase: Transforms text from camelCase to snake_case. By default it converts to lower case, unless a single optional argument is set to “false”, “no” or “0”.
contains: Check if a string contains a specific substring.
dirname: Get the path to the parent folder from a path.
escapeReservedKeywords: Escape keywords reserved in the Swift language, by wrapping them inside backticks so that the can be used as regular escape keywords in Swift code.
hasPrefix / hasSuffix: Check if a string starts/ends with a specific substring.
lowerFirstLetter: Lowercases only the first letter of a string.
lowerFirstWord: Lowercases only the first word of a string.
replace: Replaces instances of a substring with a new string.
snakeToCamelCase: Transforms text from snake_case to camelCase. By default it keeps leading underscores, unless a single optional argument is set to “true”, “yes” or “1”.
swiftIdentifier: Transforms an arbitrary string into a valid Swift identifier (using only valid characters for a Swift identifier as defined in the Swift language reference). In “pretty” mode, it will also apply the snakeToCamelCase filter afterwards, and other manipulations if needed for a “prettier” but still valid identifier.
upperFirstLetter: Uppercases only the first character
This framework also contains helper methods for Stencil.Extension and Stencil.Environment, to easily register all the tags and filters listed above on an existing Stencil.Extension, as well as to easily get a Stencil.Environment preconfigured with both those tags & filters Extension.
Parameters
This framework contains an additional parser, meant to parse a list of parameters from the CLI. For example, using Commander, if you receive a [String] from a VariadicOption<String>, you can use the parser to convert it into a structured dictionary. For example:
StencilSwiftKit
StencilSwiftKitis a framework bringing additional Stencil nodes & filters dedicated to Swift code generation.Tags
{% macro <Name> <Params> %}…{% endmacro %}{% call <Name> <Args> %}{% set <Name> %}…{% endset %}<Name>variable of the current context.{% import "common.stencil" %}common.stencilinto the current context.{% map <Variable> into <Name> using <ItemName> %}…{% endmap %}mapoperator to an array, and store the result into a new array variable<Name>in the current context.maploopspecial variable is available (akin to theforloopvariable infornodes). It exposesmaploop.counter,maploop.first,maploop.lastandmaploop.item.Filters
basename: Get the filename from a path.camelToSnakeCase: Transforms text from camelCase to snake_case. By default it converts to lower case, unless a single optional argument is set to “false”, “no” or “0”.contains: Check if a string contains a specific substring.dirname: Get the path to the parent folder from a path.escapeReservedKeywords: Escape keywords reserved in the Swift language, by wrapping them inside backticks so that the can be used as regular escape keywords in Swift code.hasPrefix/hasSuffix: Check if a string starts/ends with a specific substring.lowerFirstLetter: Lowercases only the first letter of a string.lowerFirstWord: Lowercases only the first word of a string.replace: Replaces instances of a substring with a new string.snakeToCamelCase: Transforms text from snake_case to camelCase. By default it keeps leading underscores, unless a single optional argument is set to “true”, “yes” or “1”.swiftIdentifier: Transforms an arbitrary string into a valid Swift identifier (using only valid characters for a Swift identifier as defined in the Swift language reference). In “pretty” mode, it will also apply the snakeToCamelCase filter afterwards, and other manipulations if needed for a “prettier” but still valid identifier.upperFirstLetter: Uppercases only the first characterint255toFloathexToIntpercentStencil.Extension & swiftStencilEnvironment
This framework also contains helper methods for
Stencil.ExtensionandStencil.Environment, to easily register all the tags and filters listed above on an existingStencil.Extension, as well as to easily get aStencil.Environmentpreconfigured with both those tags & filtersExtension.Parameters
This framework contains an additional parser, meant to parse a list of parameters from the CLI. For example, using Commander, if you receive a
[String]from aVariadicOption<String>, you can use the parser to convert it into a structured dictionary. For example:will become
For easier use, you can use the
StencilContext.enrich(context:parameters:environment:)function to add the following variables to a context:param: the parsed parameters using the parser mentioned above.env: a dictionary with all available environment variables (such asPATH).Licence
This code and tool is under the MIT Licence. See the
LICENCEfile in this repository.