class Hanami::Assets::Compressors::BuiltinStylesheet

Builtin compressor for stylesheet

This is a basic algorithm based on Scott Becker (@sbecker) work on asset_packager gem.

Copyright © 2006-2008 Scott Becker

@since 0.1.0 @api private

@see github.com/sbecker/asset_packager

Constants

COMMENTS_REPLACEMENT

@since 0.1.0 @api private

INSIDE_LEFT_BRACKET_REPLACEMENT

@since 0.1.0 @api private

INSIDE_RIGHT_BRACKET_REPLACEMENT

@since 0.1.0 @api private

LAST_BREAK_REPLACEMENT

@since 0.1.0 @api private

LINE_BREAKS_REPLACEMENT

@since 0.1.0 @api private

SPACE_REPLACEMENT

@since 0.1.0 @api private

Public Instance Methods

compress(filename) click to toggle source

@since 0.1.0 @api private

# File lib/hanami/assets/compressors/builtin_stylesheet.rb, line 44
def compress(filename)
  result = read(filename)
  result.gsub!(/\s+/,            SPACE_REPLACEMENT)                # collapse space
  result.gsub!(/\/\*(.*?)\*\/ /, COMMENTS_REPLACEMENT)             # remove comments - caution, might want to remove this if using css hacks
  result.gsub!(/\} /,            LINE_BREAKS_REPLACEMENT)          # add line breaks
  result.gsub!(/\n$/,            LAST_BREAK_REPLACEMENT)           # remove last break
  result.gsub!(/ \{ /,           INSIDE_LEFT_BRACKET_REPLACEMENT)  # trim inside brackets
  result.gsub!(/; \}/,           INSIDE_RIGHT_BRACKET_REPLACEMENT) # trim inside brackets
  result
end