public static IList<LibraryDescription> Walk(IList<IDependencyProvider> providers, string name, SemanticVersion version, FrameworkName targetFramework) { var libraries = new List<LibraryDescription>(); var sw = Stopwatch.StartNew(); Logger.TraceInformation($"[{nameof(DependencyWalker)}]: Walking dependency graph for '{name} {targetFramework}'."); var context = new WalkContext(); var walkSw = Stopwatch.StartNew(); context.Walk( providers, name, version, targetFramework); walkSw.Stop(); Logger.TraceInformation($"[{nameof(DependencyWalker)}]: Graph walk took {walkSw.ElapsedMilliseconds}ms."); context.Populate(targetFramework, libraries); sw.Stop(); Logger.TraceInformation($"$[{ nameof(DependencyWalker)}]: Resolved dependencies for {name} in { sw.ElapsedMilliseconds}ms"); return libraries; }
private static void WalkTree(WalkContext context, Block block, int level = 0) { if (IsSplitExpression(block)) { // TODO: Look at the block types surrounding these blocks to determine if we need the @ or not context.FlattenedTree.Insert(0, CreateCodeSpan("@if (Model.renderTop) {\r\n")); context.FlattenedTree.Add(CreateCodeSpan("\r\n}\r\n@if (!Model.renderTop) {\r\n")); context.NeedsSplit = true; } else { foreach (var item in block.Children) { var span = item as Span; if (span != null) { // TODO: Add @: in front of tags now missing end tag and vice versa because of added @if statements context.FlattenedTree.Add(span); // TODO: Process <component-xxx> tags } if (item.IsBlock) { WalkTree(context, (Block)item, level + 1); } } } if (level == 0 && context.NeedsSplit) { context.FlattenedTree.Add(CreateCodeSpan("\r\n}\r\n")); } }
public string Process(Stream stream) { using (var reader = new StreamReader(stream)) { var parserResults = engine.ParseTemplate(reader); var walkContext = new WalkContext(); WalkTree(walkContext, parserResults.Document); StringBuilder result = new StringBuilder(); foreach (var span in walkContext.FlattenedTree) { result.Append(span.Content); } return(result.ToString()); } }
public void Walk(string name, SemanticVersion version, FrameworkName targetFramework) { var sw = Stopwatch.StartNew(); Trace.TraceInformation("[{0}]: Walking dependency graph for '{1} {2}'.", GetType().Name, name, targetFramework); var context = new WalkContext(); context.Walk( _dependencyProviders, name, version, targetFramework); context.Populate(targetFramework, Libraries); sw.Stop(); Trace.TraceInformation("[{0}]: Resolved dependencies for {1} in {2}ms", GetType().Name, name, sw.ElapsedMilliseconds); }
public void Walk(string name, SemanticVersion version, FrameworkName frameworkName) { var sw = Stopwatch.StartNew(); Trace.TraceInformation("Walking dependency graph for '{0} {1}'.", name, frameworkName); var context = new WalkContext(); context.Walk( _loaders.OfType <IPackageLoader>(), name, version, frameworkName); context.Populate(frameworkName); sw.Stop(); Trace.TraceInformation("Resolved dependencies for {0} in {1}ms", name, sw.ElapsedMilliseconds); }
public void ShouldTreatHttpsAndHttpUrlAsSame() { var subUri = "http://s.com/page".AsUri(); var basicallySameSubUri = "https://s.com/page".AsUri(); var doc = new HtmlDocument(); doc.LoadHtml("<body>" + $"<a href=\"{subUri.OriginalString}\"> </a></body>"); var context = new WalkContext("http://s.com".AsUri()); context.TryRequestContentProcessing(subUri) .ShouldBeTrue("First request for content processing should be successful"); context.TryRequestContentProcessing(subUri) .ShouldBeFalse("Second request for content processing should be unsuccessful"); context.TryRequestContentProcessing(basicallySameSubUri) .ShouldBeFalse("First request for content processing " + "(but with different scheme) should be unsuccessful"); }
public void Walk(string name, SemanticVersion version, FrameworkName frameworkName) { var sw = Stopwatch.StartNew(); Trace.TraceInformation("Walking dependency graph for '{0} {1}'.", name, frameworkName); var context = new WalkContext(); context.Walk( _loaders.OfType<IPackageLoader>(), name, version, frameworkName); context.Populate(frameworkName); sw.Stop(); Trace.TraceInformation("Resolved dependencies for {0} in {1}ms", name, sw.ElapsedMilliseconds); }
public ParsingResult(IReadOnlyCollection <Item> deeperItems, WalkContext context) { DeeperItems = deeperItems ?? throw new ArgumentNullException(nameof(deeperItems)); Context = context ?? throw new ArgumentNullException(nameof(context)); }
public void WalkContextEnsureICanCreateInstance() { WalkContext context = new WalkContext(); Assert.IsNotNull(context); }