Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

traceroute

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

traceroute

  • 0.8.1
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

= Traceroute

A Rake task that helps you find dead routes and unused actions in your Rails 3+ app.

== Features

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

== Supported versions

  • Ruby 1.8.7, 1.9.2, 1.9.3, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8 (trunk)

  • Rails 3.0.x, 3.1.x, 3.2.x, 4.0.x, 4.1.x, 5.0.x, 5.1.x, 5.2.x, 6.0, 6.1 (master)

== 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

If you want the rake task to fail when errors are found.

% FAIL_ON_ERROR=1 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 (3): users#create users#new catalog#purchase Unreachable action methods (1): users#index2

OMG super helpful, isn't it?

== How do I tell it to ignore routes?

Some gems out there that inject routes or actions into our app for testing. Jasmine-Rails does this. They can give you false negatives when running this in development mode. It can be useful to ignore said routes or actions.

Create a .traceroute.yaml (or .traceroute.yml or .traceroute) file in your root directory.

.traceroute.yaml

ignore_unreachable_actions:

  • ^jasmine_rails/ ignore_unused_routes:
  • ^users#index

Both yaml headers accept a list of regexes.

== 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.

== Notes

Routes prefix with rails/ are ignored. These are generated by rails in development mode. We don't want to fail the build on these.

== 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 (c) 2011 Akira Matsuda. See MIT-LICENSE file for further details.

FAQs

Package last updated on 28 Apr 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc