Ruby wrapper and Rails asset pipeline integration for optimize-js.

Build Status

About

This gem is ruby wrapper for optimize-js. It allows you to invoke optimize-js from ruby. For Rails users this gem automatically integrates optimize-js into sprockets.

Installing gem

If you are using bundler.
Add to your Gemfile:

gem 'optimize-js', '~> 1.0'

If you are not using bundler.
Run in your terminal:

gem install optimize-js

Require gem in your ruby sources:

require 'optimize-js'

Using gem

API is quite simple.

# OptimizeJS.perform(javascript_source, optimize_js_options)

OptimizeJS.perform('!function() {}()') # => !(function() {})()

Using in Rails

There is no need to do anything.
Gem will automatically register OptimizeJS::SprocketsProcessor using register_bundle_processor so all your JavaScript assets will be optimized.

Updating optimize-js to the latest version

  1. Install gem dependencies: bundle install
  2. Run: bundle exec rake optimize_js

This rake task will do several things:

  1. Clone latest git tag
  2. Install npm dependencies
  3. Install browserify
  4. Install uglifyjs
  5. Make web-version
  6. Minify web-version
  7. Write version to optimize-js/version.rb
  8. Cleanup

Running tests

  1. Install gem dependencies: bundle install
  2. Run tests: bundle exec rake test

Things to work on

  1. Write integration tests.
  2. Test on different versions of sprockets.
  3. Test on different versions of rails.
  4. Test on different versions of ruby.
  5. Sprockets without Rails.
  6. Typos in README.

Licence

JavaScript Library Licence
Ruby Gem Licence