/// <summary> /// Constructs a instance of Hogan translator /// </summary> /// <param name="createJsEngineInstance">Delegate that creates an instance of JS engine</param> /// <param name="hoganConfig">Configuration settings of Hogan translator</param> public HoganTranslator(Func <IJsEngine> createJsEngineInstance, HoganSettings hoganConfig) { UseNativeMinification = hoganConfig.UseNativeMinification; Variable = hoganConfig.Variable; Namespace = hoganConfig.Namespace; SectionTags = hoganConfig.SectionTags .Cast <SectionTagRegistration>() .Select(s => new SectionTag(s.OpeningTagName, s.ClosingTagName)) .ToList() ; Delimiters = hoganConfig.Delimiters; if (string.IsNullOrWhiteSpace(Variable)) { throw new Core.EmptyValueException(Strings.Translators_TemplateVariableNotSpecified); } if (createJsEngineInstance == null) { string jsEngineName = hoganConfig.JsEngine.Name; if (string.IsNullOrWhiteSpace(jsEngineName)) { throw new ConfigurationErrorsException( string.Format(CoreStrings.Configuration_JsEngineNotSpecified, "hogan", @" * JavaScriptEngineSwitcher.Msie * JavaScriptEngineSwitcher.V8 * JavaScriptEngineSwitcher.ChakraCore", "MsieJsEngine") ); } createJsEngineInstance = () => JsEngineSwitcher.Instance.CreateEngine(jsEngineName); } _createJsEngineInstance = createJsEngineInstance; }
/// <summary> /// Constructs a instance of Hogan-translator /// </summary> /// <param name="createJsEngineInstance">Delegate that creates an instance of JavaScript engine</param> /// <param name="hoganConfig">Configuration settings of Hogan-translator</param> public HoganTranslator(Func<IJsEngine> createJsEngineInstance, HoganSettings hoganConfig) { UseNativeMinification = hoganConfig.UseNativeMinification; Variable = hoganConfig.Variable; Namespace = hoganConfig.Namespace; SectionTags = hoganConfig.SectionTags .Cast<SectionTagRegistration>() .Select(s => new SectionTag(s.OpeningTagName, s.ClosingTagName)) .ToList() ; Delimiters = hoganConfig.Delimiters; if (string.IsNullOrWhiteSpace(Variable)) { throw new Core.EmptyValueException(Strings.Translators_TemplateVariableNotSpecified); } if (createJsEngineInstance == null) { string jsEngineName = hoganConfig.JsEngine.Name; if (string.IsNullOrWhiteSpace(jsEngineName)) { throw new ConfigurationErrorsException( string.Format(CoreStrings.Configuration_JsEngineNotSpecified, "hogan", @" * JavaScriptEngineSwitcher.Msie * JavaScriptEngineSwitcher.V8", "MsieJsEngine") ); } createJsEngineInstance = (() => JsEngineSwitcher.Current.CreateJsEngineInstance(jsEngineName)); } _createJsEngineInstance = createJsEngineInstance; }