public static FileModuleDescriptor Get(string filename, string root) { FileInfo fileInfo; if (root == null) { fileInfo = new FileInfo(Path.GetFullPath(filename)); } else { fileInfo = new FileInfo(Path.Combine(root, filename)); } if (_cache.ContainsKey(fileInfo.FullName)) { return(_cache[fileInfo.FullName]); } var mod = new FileModuleDescriptor { FileInfo = fileInfo, DirectoryInfo = fileInfo.Directory }; _cache[mod.FileInfo.FullName] = mod; return(mod); }
public void Get_ShouldNotCreate_WhenExistingFilePassed() { var created = FileModuleDescriptor.Get(@"..\..\..\file1.css", null); var existing = FileModuleDescriptor.Get(@"..\..\..\file1.css", null); Assert.AreSame(created, existing); }
static void Main(string[] args) { string outFile = null; var infiles = new string[0]; for (var i = 0; i < args.Length; i++) { switch (args[i]) { case "-o": i++; outFile = args[i]; break; default: infiles = new string[args.Length - i]; for (var j = 0; i < args.Length; j++) { infiles[j] = args[i]; i++; } break; } } if (infiles.Length == 0) { return; } var rootNode = new RootModuleDescriptor(infiles.Select(i => FileModuleDescriptor.Get(i, null))); var resolved = new Collection <FileModuleDescriptor>(); ResolveDependencies(rootNode, resolved, new Collection <FileModuleDescriptor>()); using (var outFileWriter = new StreamWriter(outFile == null ? Console.OpenStandardOutput() : new FileStream(outFile, FileMode.OpenOrCreate))) { foreach (var mod in resolved) { outFileWriter.Write(File.ReadAllText(mod.FileInfo.FullName)); } } }
private static Func <FileModuleDescriptor, bool> Compare(FileModuleDescriptor edge) { return(m => m.FileInfo.FullName == edge.FileInfo.FullName); }
public void Get_ShouldCreate_WhenNewFilePassed() { var mod = FileModuleDescriptor.Get(@"..\..\..\file1.css", null); Assert.IsNotNull(mod); }
public void Dependencies_ShouldReturnOne_WhenPassedFile1DotCss() { var mod = FileModuleDescriptor.Get(@"..\..\..\file1.css", null); Assert.AreEqual("file2.css", mod.Dependencies.First().FileInfo.Name); }