示例#1
0
 public void RegisterHelper(string helperName, HandlebarsHelper helperFunction)
 {
     lock (_configuration)
     {
         _configuration.Helpers.AddOrUpdate(helperName, helperFunction);
     }
 }
        public HandlebarsHelper RandomRange()
        {
            HandlebarsHelper _randomRange = (TextWriter output, dynamic context, object[] arguments) =>
            {
                var arg1 = arguments[0] as string;
                var arg2 = arguments[1] as string;

                if (arg1.Contains('.') && arg2.Contains('.'))
                {
                    if (Double.TryParse(arg1, out double min) && Double.TryParse(arg2, out double max))
                    {
                        output.WriteSafeString(min + new Random().NextDouble() * (max - min));
                    }
                    else
                    {
                        throw new ArgumentException("Invalid Argument combination in {{randomRange}}");
                    }
                }
                else
                {
                    if (Int32.TryParse(arg1, out int min) && Int32.TryParse(arg2, out int max))
                    {
                        output.WriteSafeString(new Random().Next(min, max));
                    }
                    else
                    {
                        throw new ArgumentException("Invalid Arguments combination in {{randomRange}}");
                    }
                }
            };

            return(_randomRange);
        }
 public void RegisterHelper(string helperName, HandlebarsHelper helperFunction)
 {
     lock (typeof(Handlebars))
     {
         _configuration.Helpers.AddOrUpdate(helperName, helperFunction);
     }
 }
 private static string CaptureTextWriterOutputFromHelper(
     HandlebarsHelper helper,
     object context,
     object[] arguments)
 {
     var builder = new StringBuilder();
     using (var writer = new StringWriter(builder))
     {
         helper(writer, context, arguments);
     }
     return builder.ToString();
 }
        public void RegisterHelper(string helperName, HandlebarsHelper helperFunction)
        {
            if (helperFunction == null)
            {
                throw new ArgumentNullException(nameof(helperFunction));
            }

            RegisterHelper(helperName, (configuration, output, context, arguments) =>
            {
                helperFunction(output, context, arguments);
            });
        }
        private static string CaptureTextWriterOutputFromHelper(
            HandlebarsHelper helper,
            object context,
            object[] arguments)
        {
            var builder = new StringBuilder();

            using (var writer = new StringWriter(builder))
            {
                helper(writer, context, arguments);
            }
            return(builder.ToString());
        }
示例#7
0
 public static void RegisterHelper(string helperName, HandlebarsHelper helperFunction)
 {
     if (_configuration.Helpers.ContainsKey(helperName) == false)
     {
         lock (typeof(Handlebars))
         {
             if (_configuration.Helpers.ContainsKey(helperName) == false)
             {
                 _configuration.Helpers.Add(helperName, helperFunction);
             }
         }
     }
 }
示例#8
0
 public static void RegisterHelper(string helperName, HandlebarsHelper helperFunction)
 {
     if(_configuration.Helpers.ContainsKey(helperName) == false)
     {
         lock(typeof(Handlebars))
         {
             if(_configuration.Helpers.ContainsKey(helperName) == false)
             {
                 _configuration.Helpers.Add(helperName, helperFunction);
             }
         }
     }
 }
        protected override Expression VisitSubExpression(SubExpressionExpression subex)
        {
            var helperCall = subex.Expression as MethodCallExpression;

            if (helperCall == null)
            {
                throw new HandlebarsCompilerException("Sub-expression does not contain a converted MethodCall expression");
            }
            HandlebarsHelper helper = GetHelperDelegateFromMethodCallExpression(helperCall);

            return(Expression.Call(
                       new Func <HandlebarsHelper, object, object[], string>(CaptureTextWriterOutputFromHelper).Method,
                       Expression.Constant(helper),
                       helperCall.Arguments[1],
                       helperCall.Arguments[2]));
        }
        protected override System.Linq.Expressions.Expression VisitSubExpression(SubExpressionExpression subex)
        {
            if (!(subex.Expression is MethodCallExpression helperCall))
            {
                throw new HandlebarsCompilerException("Sub-expression does not contain a converted MethodCall expression");
            }
            HandlebarsHelper helper = GetHelperDelegateFromMethodCallExpression(helperCall);

            return(System.Linq.Expressions.Expression.Call(
#if netstandard
                       new Func <HandlebarsHelper, object, object[], string>(CaptureTextWriterOutputFromHelper).GetMethodInfo(),
#else
                       new Func <HandlebarsHelper, object, object[], string>(CaptureTextWriterOutputFromHelper).Method,
#endif
                       System.Linq.Expressions.Expression.Constant(helper),
                       Visit(helperCall.Arguments[1]),
                       Visit(helperCall.Arguments[2])));
        }
 public DelegateHelperDescriptor(PathInfo name, HandlebarsHelper helper) : base(name)
     => _helper = helper;
 public static void RegisterHelper(string helperName, HandlebarsHelper helperFunction)
 {
     Instance.RegisterHelper(helperName, helperFunction);
 }
 public DelegateHelperDescriptor(string name, HandlebarsHelper helper)
 {
     _helper = helper;
     Name    = name;
 }
 public HandlebarHelperRegistration(string name, HandlebarsHelper helper)
 {
     this.Name   = name;
     this.Helper = helper;
 }
示例#15
0
 public static void RegisterHelper(string helperName, HandlebarsHelper helperFunction)
 {
     _singleton.RegisterHelper(helperName, helperFunction);
 }
示例#16
0
 public void RegisterHelper(string helperName, HandlebarsHelper helperFunction)
 {
     Configuration.Helpers[helperName] = new DelegateHelperDescriptor(helperName, helperFunction);
 }
 public void RegisterHelper(string helperName, HandlebarsHelper helperFunction)
 {
     Configuration.Helpers.AddOrUpdate(helperName, n => helperFunction, (n, h) => helperFunction);
 }
示例#18
0
 public static void RegisterHelper(string helperName, HandlebarsHelper helperFunction)
 {
     Instance.RegisterHelper(helperName, helperFunction);
 }
示例#19
0
 public void RegisterHelper(string helperName, HandlebarsHelper helperFunction)
 {
     Configuration.Helpers[helperName] = helperFunction;
 }