sprockets-helpers ================= **Asset path helpers for Sprockets 2.x applications** Sprockets::Helpers adds the asset_path helpers, familiar to Rails developers, to Sprockets 2.x assets and applications. ### Features * Includes helpers for image, javascript, stylesheet, font, video, & audio assets. * Automatically appends extension if necessary. * Optionally outputs digest paths. * Falls back to file paths in the public directory & adds cache busting timestamp. Installation ------------ ``` bash $ gem install sprockets-helpers ``` Setup ----- Let's build a simple Sinatra app using Sprockets and Sprockets::Helpers (See my fork of [sinatra-asset-pipeline](https://github.com/petebrowne/sinatra-asset-pipeline) for complete setup): ``` ruby require 'sinatra/base' require 'sprockets' require 'sprockets-helpers' class App < Sinatra::Base set :sprockets, Sprockets::Environment.new(root) set :assets_prefix, '/assets' set :digest_assets, false configure do # Setup Sprockets sprockets.append_path File.join(root, 'assets', 'stylesheets') sprockets.append_path File.join(root, 'assets', 'javascripts') sprockets.append_path File.join(root, 'assets', 'images') # Configure Sprockets::Helpers (if necessary) Sprockets::Helpers.configure do |config| config.environment = sprockets config.prefix = assets_prefix config.digest = digest_assets config.public_path = public_folder end end helpers do include Sprockets::Helpers # Alternative method for telling Sprockets::Helpers which # Sprockets environment to use. # def assets_environment # settings.sprockets # end end get '/' do erb :index end end ``` Usage in Assets --------------- Simply requiring sprockets-helpers will add the asset path helpers to the Sprocket context, making them available within any asset. For example, a file `assets/javascripts/paths.js.erb`: ``` js+erb var Paths = { railsImage: "<%= image_path 'rails.png' %>" }; ``` Would be transformed into: ``` javascript var Paths = { railsImage: '/assets/rails.png' }; ``` Usage in the App ---------------- The helpers can also be used in the app itself. You just include the `Sprockets::Helpers` module and set Sprockets::Helpers.environment to the Sprockets environment to search for the assets. Alternatively you can define an #assets_environment method in the context of #asset_path, which returns a reference to the Sprockets environment (see above). Now the following index file: ``` html+erb