예제 #1
0
        public override ViewCompiler CreateViewCompiler(ISparkViewEngine engine, SparkViewDescriptor descriptor)
        {
            ViewCompiler viewCompiler;
            switch (descriptor.Language)
            {
                case LanguageType.Default:
                case LanguageType.Python:
                    viewCompiler = new PythonViewCompiler();
                    break;
                default:
                    return base.CreateViewCompiler(engine, descriptor);
            }

            var pageBaseType = engine.Settings.PageBaseType;
            if (string.IsNullOrEmpty(pageBaseType))
                pageBaseType = engine.DefaultPageBaseType;

            viewCompiler.BaseClass = pageBaseType;
            viewCompiler.Descriptor = descriptor;
            viewCompiler.Debug = engine.Settings.Debug;
            viewCompiler.NullBehaviour = engine.Settings.NullBehaviour;
            viewCompiler.UseAssemblies = engine.Settings.UseAssemblies;
            viewCompiler.UseNamespaces = engine.Settings.UseNamespaces;
            return viewCompiler;
        }
예제 #2
0
        public void Init()
        {
            _compiler = new PythonViewCompiler
                        {
                            BaseClass = typeof(StubSparkView).FullName
                        };
            _languageFactory = new PythonLanguageFactory();

            // Load up assemblies
            IronPython.Hosting.Python.CreateEngine();
        }
예제 #3
0
 public void InstanceCreated(PythonViewCompiler compiler, IScriptingSparkView view)
 {
     CompiledCode compiledCode;
     if (!_compiledViewScripts.TryGetValue(view.GeneratedViewId, out compiledCode))
     {
         var scriptSource = ScriptEngine.CreateScriptSourceFromString(view.ScriptSource, SourceCodeKind.File);
         compiledCode = scriptSource.Compile();
         _compiledViewScripts.Add(view.GeneratedViewId, compiledCode);
     }
     view.CompiledCode = compiledCode;
 }
예제 #4
0
 public void InstanceReleased(PythonViewCompiler compiler, IScriptingSparkView view)
 {
 }