public void Configure(BundleCollection bundles) { bundles.Add <ScriptBundle>("assets/javascripts/vendors/jquery-1.8.2.js", b => b.PageLocation = "jquery"); var sprockets = new Sprockets(); var node = sprockets.Scan(HostingEnvironment.MapPath("~/assets/javascripts/main.js")); var deps = node.ResolveDependencies(); bundles.Add <ScriptBundle>("assets/javascripts/main.js", deps.Select(d => d.Data.AbsolutePath), b => b.PageLocation = "app"); node = sprockets.Scan(HostingEnvironment.MapPath("~/assets/templates/main.js")); deps = node.ResolveDependencies(); bundles.Add <HtmlTemplateBundle>("assets/templates", deps.Select(d => d.Data.AbsolutePath)); }
public static Bundle IncludeFromSprocketFile(this Bundle bundle, string relativePath, string root) { if (string.IsNullOrWhiteSpace(relativePath)) { throw new ArgumentNullException("relativePath"); } if (string.IsNullOrWhiteSpace(root)) { throw new ArgumentNullException("root"); } if (!relativePath.StartsWith("~/")) { throw new ArgumentException("relativePath must start with ~/", relativePath); } relativePath = relativePath.Substring(2); var sprockets = new Sprockets(); var rootNode = sprockets.Scan(Path.Combine(root, relativePath)); var resolved = rootNode.ResolveDependencies(); return(bundle.Include(resolved.Select(node => ToAbsolutePath(node, root)).ToArray())); }
public void IndependentJsFilesHasNoDependencies() { var sprockets = new Sprockets(); var result = sprockets.Scan(Path.Combine(AssetsFolder, "b.js")); result.Edges.Count.ShouldEqual(0); }
public void ChainedDependenciesAreCorrectlyOrdered() { var sprockets = new Sprockets(); var node = sprockets.Scan(Path.Combine(AssetsFolder, "z.coffee")); var resolved = node.ResolveDependencies(); resolved.SequenceEqual(AssetsFolder, new[] { "x.coffee", "y.js", "z.coffee" }).ShouldBeTrue(); }
public void MultipleDependenciesCanBeDeclaredInOneRequireDirective() { var sprockets = new Sprockets(); var node = sprockets.Scan(Path.Combine(AssetsFolder, "poly.coffee")); var resolved = node.ResolveDependencies(); //resolved.SequenceEqual(AssetsFolder, new[] { "loveAndMarriage.js", "horseAndCarriage.coffee" }); }
public void DependenciesWithMultipleExtensionsAreAccepted() { var sprockets = new Sprockets(); var node = sprockets.Scan(Path.Combine(AssetsFolder, "testing.js")); var resolved = node.ResolveDependencies(); resolved.SequenceEqual(AssetsFolder, new[] { "1.2.3.coffee", "testing.js" }).ShouldBeTrue(); }
public void DependencyCyclesThrowsErrorDuringResolvingDependencies() { var sprockets = new Sprockets(); var node = sprockets.Scan(Path.Combine(AssetsFolder, "yin.js")); Assert.Throws <CircularDependencyException <FileMetadata> >(() => node.ResolveDependencies()); Assert.Throws <CircularDependencyException <FileMetadata> >(() => node.Edges[0].ResolveDependencies()); }
public void DependenciesCanHaveSubDirectoryRelativePaths() { var sprockets = new Sprockets(); var node = sprockets.Scan(Path.Combine(AssetsFolder, "song/loveAndMarriage.js")); var resolved = node.ResolveDependencies(); resolved.SequenceEqual(AssetsFolder, new[] { "horseAndCarriage.coffee", "loveAndMarriage.js" }); //.ShouldBeTrue(); }
public void SingleStepDependenciesAreCorrectlyRecorded() { var sprockets = new Sprockets(); var node = sprockets.Scan(Path.Combine(AssetsFolder, "a.coffee")); var resolved = node.ResolveDependencies(); resolved.Count.ShouldEqual(2); node.Edges.Count.ShouldEqual(1); node.Edges[0].Edges.Count.ShouldEqual(0); resolved.SequenceEqual(AssetsFolder, new[] { "b.js", "a.coffee" }).ShouldBeTrue(); }
public void RequireWorksForIncludesThatAreRelativeToOriginalFile() { var sprockets = new Sprockets(); var node = sprockets.Scan(Path.Combine(AssetsFolder, "first/syblingFolder.js")); var resolved = node.ResolveDependencies(); resolved.SequenceEqual(AssetsFolder, new[] { "sybling/sybling.js", "first/syblingFolder.js" }).ShouldBeTrue(); }
public void RequireTreeWorksForRedundantDirectories() { var sprockets = new Sprockets(); var node = sprockets.Scan(Path.Combine(AssetsFolder, "trilogy.coffee")); var resolved = node.ResolveDependencies(); resolved.SequenceEqual(AssetsFolder, new[] { "middleEarth/shire/bilbo.js", "middleEarth/shire/frodo.coffee", "middleEarth/legolas.coffee", "trilogy.coffee" }).ShouldBeTrue(); }
public void RequireTreeWorksForSameDirectory() { var sprockets = new Sprockets(); var node = sprockets.Scan(Path.Combine(AssetsFolder, "branch/center.coffee")); var resolved = node.ResolveDependencies(); resolved.SequenceEqual(AssetsFolder, new[] { "branch/edge.coffee", "branch/periphery.js", "branch/unwanted", "branch/subbranch/leaf.js", "branch/center.coffee" }) .ShouldBeTrue(); }
public void DependencyCyclesDoesNotThrowErrorDuringScanning() { var sprockets = new Sprockets(); var node = sprockets.Scan(Path.Combine(AssetsFolder, "yin.js")); }