add routing helpers to your Rails 3.2 asset pipeline
Ruby JavaScript CoffeeScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
spec
.gitignore
.travis.yml
Gemfile
LICENSE
README.md
Rakefile
asset_pipeline_routes.gemspec

README.md

asset_pipeline_routes

Build Status Gem Version

asset_pipeline_routes defines a r shorthand function which you can use inside your javascript assets.

What it does

Assuming you got a routes.rb with:

resources :users # => yields multiple routes, e.g. /users/:id(.:format)

Inside your javascript assets you can now write:

r(users_path)        // => yields '/users'
r(user_path)         // => yields '/users/{{id}}'
r(user_path, userId) // => yields '/users/'+userId

It works with coffeescript as well:

promise = $.rails.ajax({
  url: r(user_path, userId)
})

If you are compiling client side templates with the rails asset pipeline this works inside templates as well, e.g.

%form{ action: r(user_path) }

will generate

<form action='/users/{{id}}'></form>

Upgrading Notes

v0.2 introduced code breaking changes! THIS WILL NO LONGER WORK

// inside application.js.erb
var url = '<%= r.user_path 42 %>';

Instead, you can now drop the .erb extension and use r inline:

var url = r(user_path, 42);

Tests

You can run the test suite locally using the following commands:

$ gem install bundler
$ cd /path/to/local/asset_pipeline_routes
$ bundle install
$ bundle exec rake spec

Whatever you do, make sure the tests stay green ;)

License

Copyright © 2011-2013 Raphael Randschau nicolai86@me.com

asset_pipeline_routes is distributed under an MIT-style license. See LICENSE for details.