Exemple #1
0
 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")
     };
 }
Exemple #3
0
        public string FilterContent(string content, ContentFilterContext context)
        {
            if (context.Minify)
            {
                return(CssCompressor.Compress(content));
            }

            return(content);
        }
Exemple #4
0
 public DynamicallyCompiledIndividualResource(IFileAccess fileAccess, ResourceType resourceType,
                                              string physicalFilePath, ContentFilterPipeline contentFilterPipeline,
                                              ContentFilterContext contentFilterContext)
 {
     _fileAccess            = fileAccess;
     _resourceType          = resourceType;
     _physicalFilePath      = physicalFilePath;
     _contentFilterPipeline = contentFilterPipeline;
     _contentFilterContext  = contentFilterContext;
 }
Exemple #5
0
 internal DynamicallyCompiledIndividualResourceHandler(string physicalPathToResource,
                                                       ResourceType resourceType,
                                                       ContentFilterPipeline contentFilterPipeline,
                                                       ContentFilterContext contentFilterContext,
                                                       IFileAccess fileAccess)
 {
     _physicalPathToResource = physicalPathToResource;
     _resourceType           = resourceType;
     _contentFilterPipeline  = contentFilterPipeline;
     _contentFilterContext   = contentFilterContext;
     _fileAccess             = fileAccess;
 }
Exemple #6
0
        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
                });
            }
        }
Exemple #8
0
        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
            });
        }
Exemple #9
0
        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));
        }