Dica: Listando as rotas no console

O Carlos Brando publicou hoje um artigo sobre como testar rotas no console. Achei legal e decidi compartilhar um código que uso freqüentemente, mas que serve para listar todas as rotas nomeadas existentes. Faça o seguinte no terminal:

RUBY:
  1. $ ./script/console
  2. >> app.methods.grep /_path$/

Este comando, pega todos os métodos da aplicação e filtra utilizando uma expressão regular.

Para melhorar a visualização, você pode adicionar o "y" na frente, para que ele converta o array de retorno em yaml:

RUBY:
  1. >> y app.methods.grep /_path$/

E para ficar ainda melhor, adicione o "sort", para ficar em ordem alfabética:

RUBY:
  1. >> y app.methods.sort.grep /_path$/

O problema é que existem muitas rotas, numa aplicação bem pequena que tenho aqui chega a 500. Para contornar isso você pode utilizar o poder das expressões regulares. O código abaixo, lista apenas as que começam com 's':

RUBY:
  1. >> y app.methods.sort.grep /^s.*_path$/

Se você não conhece Expressões Regulares, dê uma lida na Web, tem muito material. Caso prefira livros, dê uma conferida no "livro do piazinho", do Aurélio.

2 Comentários

  1. Carlos Brando escreveu em 21 de setembro de 2008 as 22:24:

    Você também pode usar a task:

    $ rake routes

    E dá para fazer grep também.

  2. Felipe Diesel escreveu em 22 de setembro de 2008 as 09:13:

    Sim, porém ele retorna muita coisa e acaba quebrando a linha, ficando muito ruim a leitura.

Deixe seu comentário