public void Process( BundleContext context, BundleResponse response ) { var builder = new Ember.Handlebars.TemplateBuilder(); foreach ( var assetFile in response.Files ) { var template = File.ReadAllText( assetFile.FullName ); var templateName = Path.GetFileNameWithoutExtension( assetFile.FullName ); builder.Register( templateName, template ); } var content = builder.ToString(); if ( minifyTemplates ) { var minifier = new Minifier(); var c = minifier.MinifyJavaScript( builder.ToString() ); if ( minifier.ErrorList.Count <= 0 ) { content = c; } } response.ContentType = "text/javascript"; response.Cacheability = HttpCacheability.Public; response.Content = content; }
public void Process( BundleContext context, BundleResponse response ) { var builder = new Ember.Handlebars.TemplateBuilder(); foreach ( var assetFile in response.Files ) { var virtual_root = assetFile.IncludedVirtualPath .Substring( 0, assetFile.IncludedVirtualPath.IndexOf( "\\" ) ); var virtual_file_path = string.Format("~{0}", assetFile.VirtualFile.VirtualPath) .Replace( virtual_root + "/", string.Empty ); var file_extension = virtual_file_path.Substring(virtual_file_path.LastIndexOf(".")); var template_directory_name = string.Empty; var template_file_name = virtual_file_path .Replace( "~", string.Empty ) .Replace( file_extension, string.Empty ); if ( template_file_name.IndexOf( this.resourceNameSeparator ) >= 0 ) { var segments = template_file_name.Split( this.resourceNameSeparator[0] ); if ( 1 < segments.Length ) { var template_file_name_temp = string.Empty; if ( 2 == segments.Length ) { template_directory_name = segments[0]; template_file_name_temp = segments[1]; if ( template_directory_name.Equals( segments[1] ) || segments[1].Equals( this.defaultTemplateName ) ) { template_file_name = template_directory_name; } } else { template_directory_name = template_file_name.Substring( 0, template_file_name .LastIndexOf(this.resourceNameSeparator + segments[segments.Length-1])); var template_directory_name_temp = segments[segments.Length - 2]; template_file_name_temp = segments[segments.Length - 1]; if ( template_directory_name_temp.Equals( template_file_name_temp ) || template_file_name_temp.Equals( this.defaultTemplateName ) ) { template_file_name = template_file_name_temp; } else { template_file_name = template_directory_name_temp + this.resourceNameSeparator + template_file_name_temp; } } } } var path = context.HttpContext.Server.MapPath(virtual_root + this.resourceNameSeparator + virtual_file_path); var template = File.ReadAllText( path ); var templateName = template_file_name.Replace( this.fileNameSeparator, this.resourceNameSeparator ); builder.Register( templateName, template ); } var content = builder.ToString(); if ( minifyTemplates ) { var minifier = new Minifier(); var c = minifier.MinifyJavaScript( content ); if ( minifier.ErrorList.Count <= 0 ) { content = c; } } response.ContentType = "text/javascript"; response.Cacheability = HttpCacheability.Public; response.Content = content; }