Almejando alcançar o Rails 3
Posted by André Ribeiro Camargo Wed, 21 Jul 2010 13:45:00 GMT
Meu segundo projeto em Rails, o PelotasCenter, está para completar 4 anos em produção. Implementado em Ruby on Rails 1.1.6, está funcionando bem. Não posso me queixar.
Mas, o ecosistema Rails evolui muito rápido, nesses 4 anos muitas ferramentas surgiram ou evoluíram. Atualmente a comunidade vive a expectativa do lançamento da versão 3 do Rails.
Agora que os requisitos dos clientes estão satisfeitos e não tenho mais tanta demanda para implementação de novas funcionalidades, vou me concentrar no trabalho de portar a aplicação dos shoppings para o novo Rails.
Depois de instalar o Beta4, criei uma nova aplicação e comecei a reimplementação da camada de aplicação (não vou mexer no banco de dados).
Gostei do comando “rails”, que agora serve para criar uma nova aplicação, carregar o console, executar generators, levantar o servidor web para desenvolvimento e todas aquelas outras funcionalidades que ficavam no diretório scripts do projeto.
Gostei também do Bundler, vai ajudar bastante aqueles SysOps que não querem aprender Rails e só precisam instalar o projeto em produção.
Achei muito sexy a nova nomenclatura das rotas. Cadastrei a rota raíz do shopping, levantei o WebBrick e acessei a aplicação para ver que dependências precisam ser satisfeitas.
Primeira dependência, relacionada aos plugins… Dependo de vários, isso pode vir a ser uma dor de cabeça, pois alguns deles estão ultrapassados e não foram portados para Rails3.
Mas, “dor de cabeça”? Calma lá, não tenho pressa de fazer isso funcionar, é para ser um aprendizado, que ao ser finalizado vai para produção hehehe
Para I18n no Rails 1.1.6 uso Globalize. Rails3 inclui I18n e vi que o Globalize2 (que parece rodar no Rails3) ainda não suporta todas funcionalidades da versão 1. Bom, não vamos complicar agora, então defini alguns objetos que “simulam” o Globalize1, só para ir adiante. Futuramente eu vejo como migrar pro I18n nativo do rails.
Depois, foi a vez do FileColumn. Sei que é um plugin velhinho, mas supre muito bem minha necessidade. Instalei a versão preparada para Rails 2.2.2 e pelo menos até agora, os helpers estão funcionando. Vamos adiante…
Com isso, já estava conseguindo renderizar a capa do portal, com apenas um problema. hehe
No ERB do Rails3 as Strings são “escapadas” por padrão, depois de instruir meus helpers para usarem html_safe, a coisa começou a ficar com cara de pronto. Ainda falta portar as actions que carregam conteúdo por XHR.
Ah! Alguns recursos não fazem mais parte do Rails e viraram plugins, como: acts_as_list e acts_as_tree. Também instalei o prototype_legacy_helpers.
Agora de tarde, tem mais…
