Module: CSSminify2Enhanced

Defined in:
lib/cssminify2/enhanced.rb

Overview

Enhanced CSS Compression Features (Optional)

This file provides optional enhanced features for CSS compression while maintaining 100% backward compatibility with the original API.

Usage:

# Original API (unchanged)
CSSminify2.compress(css) 

# Enhanced API (new, optional)
CSSminify2Enhanced.compress(css, options)
CSSminify2Enhanced.new(config).compress(css)

Defined Under Namespace

Classes: Compressor, Configuration, EnhancedCompressionError, MalformedCSSError

Class Method Summary collapse

Class Method Details

.compress(css, options = {}) ⇒ Object

Convenience class methods for enhanced compression



773
774
775
776
777
778
779
780
781
782
783
# File 'lib/cssminify2/enhanced.rb', line 773

def self.compress(css, options = {})
  if options.is_a?(Hash) && !options.empty?
    config = Configuration.new
    options.each { |key, value| config.send("#{key}=", value) if config.respond_to?("#{key}=") }
    Compressor.new(config).compress(css, options[:linebreakpos] || 5000)
  else
    # Fallback to original API for backward compatibility
    linebreakpos = options.is_a?(Integer) ? options : 5000
    CssCompressor.compress(css, linebreakpos)
  end
end

.compress_with_stats(css, options = {}) ⇒ Object



785
786
787
788
789
790
791
792
793
794
795
796
797
# File 'lib/cssminify2/enhanced.rb', line 785

def self.compress_with_stats(css, options = {})
  config = Configuration.new
  options.each { |key, value| config.send("#{key}=", value) if config.respond_to?("#{key}=") }
  config.statistics_enabled = true
  
  compressor = Compressor.new(config)
  result = compressor.compress(css, options[:linebreakpos] || 5000)
  
  {
    compressed_css: result,
    statistics: compressor.statistics
  }
end