# Compile assets in parallel to speed up deployment # # Works by monkey patching actionpack from Rails 3.2.5 # # Use it by adding this to your Gemfile and run bundle install # # gem 'parallel_assets_compiler', :git => 'git://gist.github.com/2873091.git' # # Inspired by # https://github.com/steel/sprockets/commit/6327afc3341e34efd1dfdcfad08e3b9d85f7fd4a # https://github.com/hornairs/sprockets-rails-parallel require 'sprockets/static_compiler' require 'parallel' module Sprockets class StaticCompiler def compile # Collect paths logical_paths = [] env.each_logical_path do |logical_path| if File.basename(logical_path)[/[^\.]+/, 0] == 'index' logical_path.sub!(/\/index\./, '.') end logical_paths << logical_path if compile_path?(logical_path) end # Compute! results = Parallel.map(logical_paths) do |logical_path| if asset = env.find_asset(logical_path) [logical_path, write_asset(asset)] end end write_manifest(Hash[results]) if @manifest end end end