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(); }