<commit_before>using System;
using SquishIt.Framework.CSS;
using SquishIt.Framework.Files;
using SquishIt.Framework.Invalidation;
using SquishIt.Framework.JavaScript;
using SquishIt.Framework.Minifiers;
using SquishIt.Framework.Minifiers.JavaScript;
using SquishIt.Framework.Renderers;
using SquishIt.Framework.Utilities;
using MsMinifier = SquishIt.Framework.Minifiers.CSS.MsMinifier;
using NullMinifier = SquishIt.Framework.Minifiers.CSS.NullMinifier;
using YuiMinifier = SquishIt.Framework.Minifiers.CSS.YuiMinifier;

namespace SquishIt.Framework
{
    public class Configuration
    {
        private static Configuration instance;
        private ICacheInvalidationStrategy _defaultCacheInvalidationStrategy = new DefaultCacheInvalidationStrategy();
        private IMinifier<CSSBundle> _defaultCssMinifier = new MsMinifier();
        private Func<bool> _defaultDebugPredicate;
        private string _defaultHashKeyName = "r";
        private IHasher _defaultHasher;
        private IMinifier<JavaScriptBundle> _defaultJsMinifier = new Minifiers.JavaScript.MsMinifier();
        private string _defaultOutputBaseHref;
        private IPathTranslator _defaultPathTranslator = new PathTranslator();
        private IRenderer _defaultReleaseRenderer;
        private ITempPathProvider _defaultTempPathProvider = new TempPathProvider();
        private IRetryableFileOpener _defaultRetryableFileOpener = new RetryableFileOpener();

        public Configuration()
        {
            JavascriptMimeType = "application/javascript";
            CssMimeType = "text/css";
        }

        public static Configuration Instance
        {
            get { return (instance = instance ?? new Configuration()); }
            internal set { instance = value; }
        }

        /// <summary>
        ///     Mime-type used to serve Javascript content. Defaults to "application/javascript".
        ///     To enable gzip compression in IIS change this to "application/x-javascript".
        /// </summary>
        public string JavascriptMimeType { get; set; }

        /// <summary>
        ///     Mime-type used to serve CSS content. Defaults to "text/css".
        /// </summary>
        public string CssMimeType { get; set; }

        public Configuration UseMinifierForCss<TMinifier>()
            where TMinifier : IMinifier<CSSBundle><commit_msg>use YUI minifiers by default<commit_after>using System;
using SquishIt.Framework.CSS;
using SquishIt.Framework.Files;
using SquishIt.Framework.Invalidation;
using SquishIt.Framework.JavaScript;
using SquishIt.Framework.Minifiers;
using SquishIt.Framework.Minifiers.JavaScript;
using SquishIt.Framework.Renderers;
using SquishIt.Framework.Utilities;
using MsMinifier = SquishIt.Framework.Minifiers.CSS.MsMinifier;
using NullMinifier = SquishIt.Framework.Minifiers.CSS.NullMinifier;
using YuiMinifier = SquishIt.Framework.Minifiers.CSS.YuiMinifier;

namespace SquishIt.Framework
{
    public class Configuration
    {
        private static Configuration instance;
        private ICacheInvalidationStrategy _defaultCacheInvalidationStrategy = new DefaultCacheInvalidationStrategy();
        private IMinifier<CSSBundle> _defaultCssMinifier = new YuiMinifier();
        private Func<bool> _defaultDebugPredicate;
        private string _defaultHashKeyName = "r";
        private IHasher _defaultHasher;
        private IMinifier<JavaScriptBundle> _defaultJsMinifier = new Minifiers.JavaScript.YuiMinifier();
        private string _defaultOutputBaseHref;
        private IPathTranslator _defaultPathTranslator = new PathTranslator();
        private IRenderer _defaultReleaseRenderer;
        private ITempPathProvider _defaultTempPathProvider = new TempPathProvider();
        private IRetryableFileOpener _defaultRetryableFileOpener = new RetryableFileOpener();

        public Configuration()
        {
            JavascriptMimeType = "application/javascript";
            CssMimeType = "text/css";
        }

        public static Configuration Instance
        {
            get { return (instance = instance ?? new Configuration()); }
            internal set { instance = value; }
        }

        /// <summary>
        ///     Mime-type used to serve Javascript content. Defaults to "application/javascript".
        ///     To enable gzip compression in IIS change this to "application/x-javascript".
        /// </summary>
        public string JavascriptMimeType { get; set; }

        /// <summary>
        ///     Mime-type used to serve CSS content. Defaults to "text/css".
        /// </summary>
        public string CssMimeType { get; set; }

        public Configuration UseMinifierForCss<TMinifier>()
            where TMinifier : IMinifier<CSSBundle>
{'fraction_non_alphanumeric': 0.07788359788359789, 'fraction_numerical': 0.0, 'mean_word_length': 3.171226831421006, 'pattern_counts': {'":': 0, '<': 21, '<?xml version=': 0, '>': 21, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6796532', 'n_tokens_mistral': 1262, 'n_tokens_neox': 1215, 'n_words': 303}