Airgun Build Status Dependency Status

This gem provides a simple Ruby interface to compress HTML, JS, and CSS, including embedded JS and CSS. This is useful for compressing static web content for size and obfuscation.

require 'airgun'
puts Airgun::html 'file.htm'

args = {
  :outfile => 'compressed.htm',
  :jscompressor => :closure,
  :erb => true,
  :compressjs => true,
  :compresscss => false
}
Airgun::html 'file.htm', args

HTML compresson is provided by the html_compressor gem after parsing with Nokogiri. CSS compression is provided by the YUI Compressor. JS compression is provided by Google's Closure Compiler.

Documentation

Airgun::html file, args

By default this method returns the compressed HTML as a string.

Possible arguments:

  • :outfile - Write the compressor's output to this file.
  • :exclude - Exclude the CSS and JS linked in the HTML page that match one of the filenames in this list.
  • :jscompressor - Either :closure or :yui, defaults to :closure.
  • :fragment - Either true or false. Don't parse with Nokogiri prior to compression, this disables JS and CSS compression.
  • :erb - Either true or false. Run the files through ERB before compression.
  • :compressjs - Either true or false, defaults to true.
  • :compresscss - Either true or false, defaults to true.

Airgun::js file, args

By default this method returns the compressed JS as a string.

Possible arguments:

  • :compressor - Either :closure or :yui, defaults to :closure.
  • :outfile - Write the compressor's output to this file.
  • :erb - Run the file through ERB prior to compression

Airgun::css file, args

By default this method returns the compressed CSS as a string.

Possible arguments:

  • :outfile - Write the compressor's output to this file.
  • :erb - Run the file through ERB prior to compression