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

Gem Version 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