public DynamicallyCompiledIndividualResourceHandler(string physicalPathToResource, ResourceType resourceType, ContentFilterPipeline contentFilterPipeline, ContentFilterContext contentFilterContext) : this(physicalPathToResource, resourceType, contentFilterPipeline, contentFilterContext, new FileAccessWrapper()) { }
public void SetupContext() { _filter = new CssRelativePathFilter(); _context = new ContentFilterContext { ResourceVirtualPath = "~/Styles/AStylesheet.css", Group = new StubResourceGroup("~/Styles/Consolidated/OneStylesheet.css") }; }
public string FilterContent(string content, ContentFilterContext context) { if (context.Minify) { return(CssCompressor.Compress(content)); } return(content); }
public DynamicallyCompiledIndividualResource(IFileAccess fileAccess, ResourceType resourceType, string physicalFilePath, ContentFilterPipeline contentFilterPipeline, ContentFilterContext contentFilterContext) { _fileAccess = fileAccess; _resourceType = resourceType; _physicalFilePath = physicalFilePath; _contentFilterPipeline = contentFilterPipeline; _contentFilterContext = contentFilterContext; }
internal DynamicallyCompiledIndividualResourceHandler(string physicalPathToResource, ResourceType resourceType, ContentFilterPipeline contentFilterPipeline, ContentFilterContext contentFilterContext, IFileAccess fileAccess) { _physicalPathToResource = physicalPathToResource; _resourceType = resourceType; _contentFilterPipeline = contentFilterPipeline; _contentFilterContext = contentFilterContext; _fileAccess = fileAccess; }
public string FilterContent(string content, ContentFilterContext context) { var config = new DotlessConfiguration { MinifyOutput = context.Minify, Web = HttpContext.Current != null, LessSource = typeof(VirtualPathFileReader), CacheEnabled = false /* no need to cache as we let the Assman framework manage its own cache */ }; return(dotless.Core.Less.Parse(content, config)); }
public IHttpHandler GetHandlerUncached(string physicalPathToResource, string appRelativePathToResource) { var resourceType = ResourceType.FromPath(physicalPathToResource); if (resourceType == null) { return(null); } var resourceMode = GetResourceMode(); if (_assmanContext.PreCompiled) { return(new PreCompiledResourceHandler(physicalPathToResource, resourceType, resourceMode) { EnableGZip = _assmanContext.GZip, Mode = resourceMode }); } var groupTemplate = _assmanContext.FindGroupTemplate(appRelativePathToResource); if (groupTemplate != null) { return(new DynamicallyConsolidatedResourceHandler(appRelativePathToResource, _assmanContext.GetCompiler(), groupTemplate) { MinLastModified = _assmanContext.ConfigurationLastModified, Mode = resourceMode, EnableGZip = _assmanContext.GZip }); } else { var fileExtension = Path.GetExtension(physicalPathToResource); var contentFilterPipeline = _assmanContext.GetContentPipelineForExtension(fileExtension); var contentFilterContext = new ContentFilterContext { Minify = resourceMode == ResourceMode.Release, //TODO: base this off of global minification setting ResourceVirtualPath = appRelativePathToResource }; return(new DynamicallyCompiledIndividualResourceHandler(physicalPathToResource, resourceType, contentFilterPipeline, contentFilterContext) { Mode = resourceMode, EnableGZip = _assmanContext.GZip }); } }
public ICompiledResource CompileResource(IResource resource) { var contentFilterPipeline = _contentFilterPipelineMap.GetPipelineForExtension(resource.FileExtension); var contentFilterContext = new ContentFilterContext { Minify = _resourceMode == ResourceMode.Release, //TODO: obey global Minify settings ResourceVirtualPath = resource.VirtualPath }; var compiledContent = contentFilterPipeline.FilterContent(resource.GetContent(), contentFilterContext); return(new IndividuallyCompiledResource { Resource = resource, Mode = _resourceMode, CompiledContent = compiledContent }); }
public ICompiledResource CompileGroup(IResourceGroup group) { Func <IResource, string> getResourceContent = resource => { var contentFilterPipeline = _contentFilterPipelineMap.GetPipelineForExtension(resource.FileExtension); var contentFilterContext = new ContentFilterContext { Group = group, Minify = group.Minify, ResourceVirtualPath = resource.VirtualPath }; return(contentFilterPipeline.FilterContent(resource.GetContent(), contentFilterContext)); }; return(group.GetResources() .SortByDependencies(_dependencyManager) .Consolidate(group, getResourceContent, group.ResourceType.Separator)); }