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);
        }
Beispiel #2
0
        public void Get_ShouldNotCreate_WhenExistingFilePassed()
        {
            var created  = FileModuleDescriptor.Get(@"..\..\..\file1.css", null);
            var existing = FileModuleDescriptor.Get(@"..\..\..\file1.css", null);

            Assert.AreSame(created, existing);
        }
Beispiel #3
0
        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));
                }
            }
        }
Beispiel #4
0
 private static Func <FileModuleDescriptor, bool> Compare(FileModuleDescriptor edge)
 {
     return(m => m.FileInfo.FullName == edge.FileInfo.FullName);
 }
Beispiel #5
0
        public void Get_ShouldCreate_WhenNewFilePassed()
        {
            var mod = FileModuleDescriptor.Get(@"..\..\..\file1.css", null);

            Assert.IsNotNull(mod);
        }
Beispiel #6
0
        public void Dependencies_ShouldReturnOne_WhenPassedFile1DotCss()
        {
            var mod = FileModuleDescriptor.Get(@"..\..\..\file1.css", null);

            Assert.AreEqual("file2.css", mod.Dependencies.First().FileInfo.Name);
        }