示例#1
0
		void ApplyPreCompilationStepsOn(SourceFile file)
		{
			foreach (IPreCompilationStep step in preCompilationSteps)
			{
				step.Process(file);
			}
		}
		private void RunSteps(SourceFile file)
		{
			foreach (IPreCompilationStep step in provider.GetSteps())
			{
				step.Process(file);
			}
		}
		public void Proces_WithSiteRootInComponentBody_TransformsTheSiteRoot()
		{
			string source = @"<%@ Page Language=""C#"" %>
<component:Bold>~</component:Bold>";

			SourceFile file = new SourceFile();
			file.ViewName= @"\home\index.aspx";
			file.ViewSource = source;
			file.RenderBody = file.ViewSource;
			
			RunSteps(file);

			#region expected
			string expected = @"using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using Castle.MonoRail.Framework;
using Castle.MonoRail.Views.AspView;
namespace CompiledViews
{
	public class  : AspViewBase
	{
		protected override string ViewName { get { return ""\\home\\index.aspx""; } }
		protected override string ViewDirectory { get { return ""\\home""; } }


		public override void Render()
		{
InvokeViewComponent(""Bold"", Bold0_body, null);

		}

		internal void Bold0_body ()
		{
			Output(siteRoot);

		}

	}
}
";
			#endregion

			Assert.Equal(expected, file.ConcreteClass);
		}
示例#4
0
		List<SourceFile> GetSourceFiles()
		{
			List<SourceFile> files = new List<SourceFile>();
			Console.WriteLine(context.ViewRootDir);
			if (context.ViewRootDir.Exists == false)
				throw new Exception(string.Format("Could not find views folder [{0}]", context.ViewRootDir));

			foreach (string templateExtension in TemplateExtensions)
			{
				FileInfo[] templateFilenames = context.ViewRootDir.GetFiles("*" + templateExtension, SearchOption.AllDirectories);
				foreach (FileInfo fileInfo in templateFilenames)
				{
					Console.WriteLine(fileInfo.FullName);
					string viewName = fileInfo.FullName.Replace(context.ViewRootDir.FullName, "");
					SourceFile file = new SourceFile();
					file.ViewName = viewName;
					file.ClassName = AspViewEngine.GetClassName(viewName);
					file.ViewSource = File.ReadAllText(fileInfo.FullName);
					file.RenderBody = file.ViewSource;
					files.Add(file);
				}
			}
			return files;

		}
示例#5
0
		protected static string SourceFileToSource(SourceFile file)
		{
			return file.ConcreteClass;
		}
示例#6
0
		protected string SourceFileToFileName(SourceFile file)
		{
			return Path.Combine(context.TemporarySourceFilesDirectory.FullName, file.FileName);
		}
示例#7
0
		private static void SaveFile(SourceFile file, string targetDirectory)
		{
			string fileName = Path.Combine(targetDirectory, file.FileName);
			File.WriteAllText(fileName, file.ConcreteClass, Encoding.UTF8); 
		}
示例#8
0
		public static List<SourceFile> GetSourceFiles(string siteRoot)
		{
			List<SourceFile> files = new List<SourceFile>();
			string viewsDirectory = Path.Combine(siteRoot, "Views");
			string layoutsDirectory = Path.Combine(viewsDirectory, "layouts");

			if (!Directory.Exists(viewsDirectory))
				throw new Exception(string.Format("Could not find views folder [{0}]", viewsDirectory));

			List<string> fileNames = new List<string>();

			fileNames.AddRange(Directory.GetFiles(viewsDirectory, "*.aspx", SearchOption.AllDirectories));
			fileNames.AddRange(Directory.GetFiles(layoutsDirectory, "*.master", SearchOption.AllDirectories));
		
			foreach (string fileName in fileNames)
			{
				SourceFile file = new SourceFile();
				file.ViewName = fileName.Replace(viewsDirectory, "");
				file.ClassName = AspViewEngine.GetClassName(file.ViewName);
				file.ViewSource = ReadFile(fileName);
				file.RenderBody = file.ViewSource;
				files.Add(file);
			}
			return files;
		}
示例#9
0
        private static void SaveFile(SourceFile file, string targetDirectory)
        {
            string fileName = Path.Combine(targetDirectory, file.FileName);

            File.WriteAllText(fileName, file.ConcreteClass, Encoding.UTF8);
        }
示例#10
0
 protected static string SourceFileToSource(SourceFile file)
 {
     return(file.ConcreteClass);
 }
示例#11
0
 protected string SourceFileToFileName(SourceFile file)
 {
     return(Path.Combine(context.TemporarySourceFilesDirectory.FullName, file.FileName));
 }
示例#12
0
		protected static string SourceFileToFileName(SourceFile file)
		{
			return file.FileName;
		}
示例#13
0
 protected static string SourceFileToFileName(SourceFile file)
 {
     return(file.FileName);
 }