Nustache.Core.VariableReference.Render C# (CSharp) Method

Render() public method

public Render ( RenderContext context ) : void
context RenderContext
return void
        public override void Render(RenderContext context)
        {
            var value = context.GetValue(_path);

            var lambda = CheckValueIsDelegateOrLambda(value);
            if(lambda != null)
            {
                var lambdaResult = lambda().ToString();

                lambdaResult = _escaped
                    ? context.HtmlEncoder(lambdaResult.ToString())
                    : lambdaResult.ToString();

                using (System.IO.TextReader sr = new System.IO.StringReader(lambdaResult))
                {
                    Template template = new Template();
                    template.StartDelimiter = "{{";
                    template.EndDelimiter = "}}";

                    template.Load(sr);
                    context.Enter(template);
                    template.Render(context);
                    context.Exit();

                    return;
                }
            }

            var helper = value as HelperProxy;

            if (helper != null)
            {
                helper(data => { }, data => { });
            }
            else if (value != null)
            {
                context.Write(_escaped
                    ? context.HtmlEncoder(value.ToString())
                    : value.ToString());
            }
        }