Source code for TagScriptEngine.block.assign

from typing import Optional

from ..adapter import StringAdapter
from ..interface import verb_required_block
from ..interpreter import Context


[docs]class AssignmentBlock(verb_required_block(False, parameter=True)): """ Variables are useful for choosing a value and referencing it later in a tag. Variables can be referenced using brackets as any other block. **Usage:** ``{=(<name>):<value>}`` **Aliases:** ``assign, let, var`` **Payload:** value **Parameter:** name **Examples:** :: {=(prefix):!} The prefix here is `{prefix}`. # The prefix here is `!`. {assign(day):Monday} {if({day}==Wednesday):It's Wednesday my dudes!|The day is {day}.} # The day is Monday. """ ACCEPTED_NAMES = ("=", "assign", "let", "var") def process(self, ctx: Context) -> Optional[str]: if ctx.verb.parameter is None: return None ctx.response.variables[ctx.verb.parameter] = StringAdapter(str(ctx.verb.payload)) return ""