DotLiquid.RenderParameters.Evaluate C# (CSharp) Method

Evaluate() private method

private Evaluate ( Template template, Context &context, Hash &registers, IEnumerable &filters ) : void
template Template
context Context
registers Hash
filters IEnumerable
return void
        internal void Evaluate(Template template, out Context context, out Hash registers, out IEnumerable<Type> filters)
        {
            if (Context != null)
            {
                context = Context;
                registers = null;
                filters = null;
                return;
            }

            List<Hash> environments = new List<Hash>();
            if (LocalVariables != null)
                environments.Add(LocalVariables);
            environments.Add(template.Assigns);
            context = new Context(environments, template.InstanceAssigns, template.Registers, RethrowErrors);
            context.ValueTypeTransformers = ValueTypeTransformers;
            registers = Registers;
            filters = Filters;
        }

Usage Example

Example #1
0
        /// <summary>
        /// Render takes a hash with local variables.
        ///
        /// if you use the same filters over and over again consider registering them globally
        /// with <tt>Template.register_filter</tt>
        ///
        /// Following options can be passed:
        ///
        /// * <tt>filters</tt> : array with local filters
        /// * <tt>registers</tt> : hash with register variables. Those can be accessed from
        /// filters and tags and might be useful to integrate liquid more with its host application
        /// </summary>
        private void RenderInternal(TextWriter result, RenderParameters parameters)
        {
            if (Root == null)
            {
                return;
            }

            Context            context;
            Hash               registers;
            IEnumerable <Type> filters;

            parameters.Evaluate(this, out context, out registers, out filters);

            if (registers != null)
            {
                Registers.Merge(registers);
            }

            if (filters != null)
            {
                context.AddFilters(filters);
            }

            try
            {
                // Render the nodelist.
                Root.Render(context, result);
            }
            finally
            {
                _errors = context.Errors;
            }
        }
All Usage Examples Of DotLiquid.RenderParameters::Evaluate
RenderParameters