
É até uma injustiça eu começar falando do
Custom Resource Name tanto tempo após o seu lançamento, mas o tempo não permitiu que eu fizesse nada. Como podem ver meus posts estão cada vez menos frequentes. Porém, antes tarde do que nunca.
Custom Resource Name é um excelente plugin para Rails criado pelo simpático
Carlos Brando, que teve toda a paciência do mundo para me ouvir. Este plugin renomeia as rotas, muito útil para quem programa em inglês para aproveitar todas as facilidades do Rails.
Para início de conversa, eu incomodei muito o Carlos Brando para fazer rodar o seu plugin em uma aplicação que eu estava fazendo em Rails 1.2.3, eu tinha até vergonha de ficar pedindo isso pra ele às vésperas do Rails 2.1. Mas os motivos de rodar o Rails 1.2.3 são óbvios, em "shared hosts" é essa a realidade. No entanto, o Everton resoulveu dar freeze no Rails, e dessa forma começamos a usar Rails 2 em todas as nossas aplicações. Mas isto não vem ao caso agora.
O que acontecia de erro no plugin do Carlos, não era a versão do Rails que eu estava utilizando, mas sim o plugin
Restfull Authentication. Ele não é um plugin no sentido estrito da palavra, mas sim um generator. Ele gera controllers, models e views de acordo com as opções que você escolher. Mas o problema está na rota que o restfull authentication gera a sua rota REST. Uma rota normal para um resource chamado categories seria
map.resources :categories o que faz sentido, visto que categorias podem ser mais de uma. Porém, a rota gerada pelo restfull authentication para a página de login é
map.resource :session, :controller => :session, fique atento,
map.resource. Isto significa que no plugin do Carlos Brando não dá cobertura para uma rota singular, algo compreensível, visto que este tipo de rota é algo muito incomum.
O fato de a rota ser singular fazia com que ao instalar o plugin Custom Resource Name eu não conseguisse sequer iniciar o WEBRick. Após muitas tentativas de mudar o plugin resolvi recorrer a uma reunião de equipe para que todos pudessem identificar o problema e propôr soluções. A solução foi modificar o que foi gerado pelo Restfull Authentication e transformar a rota singular sessions para uma rota "plural" chamada sessions, mas para não ficar feio para iniciar "uma sessions", nomeamos a rota sessions para login com o Custom Resource Name.
Se alguém encontrar o mesmo problema e não conseguir resolver, pode entrar em contato comigo. Além disso vou ver se mudo mais adiante o plugin do Carlos para suportar este tipo de rota.
Agradeço a paciência do Carlos Brando com o meu problema. Espero não ter incomodado muito.
A propósito, o Carlos
tem melhorado dia após dia o seu plugin. Novos recursos foram adicionados recentemente, o que me possibilitou ter nenhuma dor de cabeça com o cliente, pois certamente ele iria reclamar se eu pusesse algo como formas_de_pagamento/novo, agora, com as modificações do plugin, isto não vai mais acontecer.