Backport of Rails 3.1.x Sprockets integration to Rails 3.0.x
Ruby
Switch branches/tags
Latest commit 243de15 Jan 4, 2012 James MacAulay update README again
Permalink
Failed to load latest commit information.
lib documentation fixes Jan 4, 2012
.gitignore v0.0.3 Dec 13, 2011
Gemfile first Dec 1, 2011
MIT-LICENSE first Dec 1, 2011
README.markdown update README again Jan 4, 2012
sprockets_rails3_backport.gemspec v0.0.4 Dec 16, 2011

README.markdown

Backport of Rails 3.1.x Sprockets integration to Rails 3.0.x

Most code has been extracted from the Rails 3-1-stable branch. Modified to suit our needs.

Usage

In your Gemfile:

gem "sprockets_rails3_backport"

...plus whatever supplementary gems you want for the asset pipeline:

gem 'coffee-script', '2.2.0'
gem 'therubyracer', '0.9.9'
gem 'uglifier', '>= 1.0.3'

In your routes.rb:

MyApp::Application.routes.draw do
  if (app = Rails.application).config.assets.compile
    mount app.assets => app.config.assets.prefix
  end
  
  # ...
end

Here are the various config.assets options and their defaults:

config.assets.paths                    = []
config.assets.precompile               = [ Proc.new{ |path| !['.js', '.css'].include?(File.extname(path)) },
                                           /(?:\/|\\|\A)application\.(css|js)$/ ]
config.assets.prefix                   = "/assets"
config.assets.version                  = ''
config.assets.debug                    = false
config.assets.compile                  = true
config.assets.digest                   = false
config.assets.manifest                 = nil
config.assets.cache_store              = [ :file_store, "#{root}/tmp/cache/assets/" ]
config.assets.js_compressor            = nil
config.assets.css_compressor           = nil
config.assets.initialize_on_precompile = true

Differences from Rails 3.1

This gem was made for Shopify's use, and I've made changes to some behaviour that either didn't work in Rails 3.0, or didn't make sense for Shopify: