Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A Rake task gem that helps you find the dead routes and actions for your Rails 3+ app
Ruby
tree: 863f82c786

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
.gitignore
Gemfile
README.rdoc
Rakefile
traceroute.gemspec

README.rdoc

Traceroute

A Rake task that helps you find the dead routes and actions for your Rails 3 app

Features

This Rake task investigates your Rails 3 application's routes definition, then tells you unused routes and unreachable action methods.

Supported versions

  • Ruby 1.8.7, 1.9.2, 1.9.3, 2.0 (trunk)

  • Rails 3.0.x, 3.1.x, 3.2.x, 4.0 (edge)

Install

Put this line in your Gemfile:

gem 'traceroute'

Then bundle:

% bundle

Usage

Just run the following command in your Rails app directory.

% rake traceroute

What's gonna happen then?

Consider you have the following routes.rb and a controller:

# config/routes.rb
YourRailsApp::Application.routes.draw do
  resources :users, :only => [:index, :show, :new, :create]
  match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase
end

# app/controllers/users_controller.rb
class UsersController < ApplicationController
  def index
    @users = User.page(params[:page])
  end

  def index2
  end

  def show
    @user = User.find(params[:id])
  end
end

Running the Rake task will print something like this for you:

Unused routes:
  users#create
  users#new
  catalog#purchase
Unreachable action methods:
  users#index2

OMG super helpful, isn't it?

FAQ

Q: It makes a fuss over the default route at the very bottom. WTF?
A: Please do not use that. Did you read the comment in your routes.rb? Actually this task will help you a lot to remove that evil route.

Q: "command not found: traceroute" Did you mean: tracert
A: I'm afraid you're using the wrong operating system.

Questions, Feedback

Feel free to message me on Github (amatsuda) or Twitter (@a_matsuda) ☇3☇3☇3

Contributing to Traceroute

  • Fork, patch, then send me a pull request.

Copyright

Copyright © 2011 Akira Matsuda. See LICENSE.txt for further details.

Something went wrong with that request. Please try again.