FancyRoutes by TRED

Removing the cruft, bringing the HTTP method to the forefront and sporting a neat DRYing block syntax—FancyRoutes is a layer on top of the Rails routing system which provides an elegant API for mapping requests to your application's controllers and actions.

Example

Here's an extract from one of Myles’ applications:

map.connect '/orders', :controller => 'orders', :action => 'index, :conditions => { :method => :get }

map.connect '/:slug/order', :controller => 'orders', :action => :show, :conditions => { :method => :get }
map.connect '/:slug/order', :controller => 'orders', :action => :create, :conditions => { :method => :post }

map.connect 'item_images/:image', :controller => 'item_images', :action => 'show', :conditions => { :method => :get }

The equivalent using fancyroutes:

get / 'orders' >> :orders > :index

with route / :slug / 'order' >> :orders do
  get > :show
  put > :update
end

get {'item_images' => :controller} / :image > :show

So fancy! You can see further examples and full documentation in the README.

Installation

Install the gem:

sudo gem install tred-fancyroutes

add the dependency in your environment.rb:

config.gem 'tred-fancyroutes'

and then use the FancyRoutes method in your routes.rb:

ActionController::Routing::Routes.draw do |map|
FancyRoutes(map) do
  # the
  # fanciest
  # routes
  # you
  # ever
  # did
  # see
end
end

Source

The main source repository can be found at github.com/tred/fancyroutes

The URL for the main git repository is:

git clone git://github.com/tred/fancyroutes.git
Fork me on GitHub