Ejemplo n.º 1
0
        private static ISnippetCache buildCache(string directory)
        {
            var files = new SnippetApplicationFiles(".".ToFullPath().AppendPath("src"), directory);

            var cache = new SnippetCache();

            var scanners = new ISnippetScanner[]
            {
                new CLangSnippetScanner("cs"),
                new CLangSnippetScanner("js"),
                new BlockCommentScanner("<!--", "-->", "spark", "lang-html"),
                new BlockCommentScanner("<!--", "-->", "htm", "lang-html"),
                new BlockCommentScanner("<!--", "-->", "html", "lang-html"),
                new BlockCommentScanner("<!--", "-->", "xml", "lang-xml"),
                new BlockCommentScanner("/*", "*/", "css", "lang-css"),
                new RazorSnippetScanner(),
                new RubySnippetScanner(),
            };

            scanners.Each(finder => {
                files.FindFiles(finder.MatchingFileSet).Each(file => {
                    var scanner = new SnippetReader(file, finder, snippet => {
                        snippet.File = file.Path;
                        cache.Add(snippet);
                    });

                    scanner.Start();
                });
            });


            return(cache);
        }
        public void find_by_bottle()
        {
            var cache = new SnippetCache();
            var snippet1 = new Snippet("a") {BottleName = "Foo"};
            cache.Add(snippet1);

            var snippet2 = new Snippet("a") {BottleName = "Bar"};
            cache.Add(snippet2);

            cache.FindByBottle("a", "Foo").ShouldBeTheSameAs(snippet1);
            cache.FindByBottle("a", "Bar").ShouldBeTheSameAs(snippet2);
            cache.FindByBottle("random", "Bar").ShouldBeNull();
            cache.FindByBottle("a", "Random").ShouldBeNull();
        }