process method

StubbleResult? process(
  1. ProcessMessage msg,
  2. StubbleContext context
)

Implementation

StubbleResult? process(ProcessMessage msg, StubbleContext context) {
  final charCode = msg.charCode;

  if (_escape) {
    _escape = false;
    _value += String.fromCharCode(charCode);
  } else {
    if (charCode == openBracket || charCode == closeBracket) {
      return StubbleResult(
        err: StubbleError(
          code: errorStringAttributeMalformed,
          text:
              'Wrong attribute value character "${String.fromCharCode(charCode)}"',
        ),
      );
    } else if (charCode == backSlash) {
      _escape = true;
    } else if (charCode == quoteSymbol) {
      return StubbleResult(
        pop: true,
        message: NotifyMessage(
          type: notifyAttrResult,
          value: _value,
          charCode: null,
        ),
      );
    } else {
      _value += String.fromCharCode(charCode);
    }
  }

  return null;
}