StorytellerDocGen.Transformation.Transformer.Transform C# (CSharp) Method

Transform() public method

public Transform ( Topic current, string before ) : string
current StorytellerDocGen.Topics.Topic
before string
return string
        public string Transform(Topic current, string before)
        {
            var tokens = Token.FindTokens(before).ToArray();

            if (!tokens.Any()) return before;

            var builder = new StringBuilder();
            var position = 0;
            tokens.Each(token =>
            {
                if (token.FirstIndex > position)
                    builder.Append(before.Substring(position, token.FirstIndex - position));

                var handler = _handlers[token.Key];
                builder.Append(handler.Transform(current, token.Data));

                position = token.LastIndex + 1;
            });

            if (position < before.Length)
                builder.Append(before.Substring(position));

            return builder.ToString();
        }