De um tempo para cá parece que virou moda a criação de projetos Rails semi-prontos. Em uma rápida pesquisa no GitHub encontrei o Bort, Blank, Suspenders, starter-app, appstarter e mais alguns menos conhecidos.
E isto é muito bom, já que na maioria das vezes usamos sempre a mesma estrutura para criar nossos projetos, os mesmos gems e plugins e o mesmo sistema de autenticação. Eu mesmo já experimentei alguns dos projetos que mencionei acima, mas eles são projetos semi-prontos criados para suprir as necessidades das equipes que os criaram e não as minhas necessidades.
Existe um projeto mais interessante do que todos estes, chamado rg. Jeremy McAnally teve a idéia de criar um script na qual você pudesse montar a sua própria estrutura de projeto, apenas relatando quais gems e plugins você deseja usar, quais arquivos criar e com que conteúdo, etc..
Percebendo a necessidade dos desenvolvedores por tais projetos semi-prontos, o core team do Rails decidiu incluir o rg no Rails. Assim ganhamos a opção de carregar um template ao criar um novo projeto Rails de forma nativa.
Nunca foi tão fácil criar um template padrão para um projeto Rails. Veja um exemplo de um template:
# Install plugins from git or svn
plugin "will-paginate", :git => "git://github.com/mislav/will_paginate.git"
plugin "old-restful-auth", :svn => "http://svn.techno-weenie.net/projects/plugins/restful_authentication/"
# Add gems to environment.rb
gem "jeremymcanally-context"
gem "bluecloth"
lib("crypto.rb") do
"crypted_special_value = '------'"
end
# ...file data from block return value.
# #initializer creates a new initializer file
initializer("crypto.rb") do
salt = "------"
"SPECIAL_SALT = ''"
end
rakefile("bootstrap.rake") do
project = ask("What is the UNIX name of your project?")
<<-TASK
namespace : do
task :bootstrap do
puts "i like boots!"
end
end
TASK
end
route "map.root :controller => :welcome"
No código acima estou definindo quais plugins devem ser instalados, quais gems devem ser adicionadas no arquivo environment.rb, também estou criando um arquivo chamado crypto.rb na pasta lib e um initializer com o mesmo nome, uma tarefa rake e adicicionando uma rota no arquivo conifg/routes.rb.
Este script pode estar armazenado na sua máquina, ou mesmo em algum site como o Gist do GitHub, por exemplo. E para criar um projeto baseado neste template basta fazer assim:
Adeus Bort, Blank, Suspenders, starter-app, appstarter e tantos outros!
Todos os exemplos dados aqui funcionarão somente no Ruby on Rails 2.3/3.0 ou superior. Você pode encontrar mais detalhes sobre esta e outras novidades acompanhando a série Edge Rails.

13 Comentários em "Criando um template padrão de um projeto Rails, ou adeus Bort, Blank, Suspenders e outros"
É o que você disse. Nunca foi tão fácil criar um projeto Rails semi pronto.
Fantástico…. mas ficou uma dúvida. Por exemplo eu tenho a minha propria aplicação de template para sites e uma para softwares… para softwares eu uso bastante coisa do Restful authentication, são vários arquivos prontos ( eu nem rodo mais o generate do plugin ) como models, views, controllers para users, roles, session, password e etc.
Como ficaria isso? Vou escrever tudo neste template ai e terei um arquivo com 5000 linhas?
Eu tinha olhado o RG já mas o que não entendi foi exatamente isso… o Bort e os outros são diferentes, já são um aplicativo e vc começa sobre eles.
@Daniel, sim, vc teria de escrever tudo ai mesmo… rs. No seu caso deve ser melhor manter teu projeto modelo.
Eu faço isso com um shell script. Simples. Nem toda a aplicação que você criar terá os mesmos plugins e gems, por isso acho isso um pouco desnecessário.
Uma coisa bacana desta novidade é que você pode incluir perguntas sobre o que instalar ou não instalar. Dá para personalizar bem.
Hummm… é legal e economiza algum trabalho, mas somente quando não se tem que alterar muitos arquivos nas instalações dos plugins. (e não é o caso da maioria dos plugins, e.g. restful-authentication, etc)
Opa, Carlos. Citei esse post no meu blog.
http://rubyurl.com/CxHZ .
Abraços
Tweetbacks
Criando um template padrão de um projeto Rails 2.3 http://is.gd/j9uq
Trackbacks/Pingbacks
[...] Leia mais direto na fonte: http://www.nomedojogo.com [...]
[...] Leia mais deste post no blog de origem: Clique aqui e prestigie o autor [...]
[...] já comentei aqui no blog sobre o novo sistema de templates do Rails [...]
[...] Carlos Brando também escreveu um post a respeito, bem [...]
[...] configurar git e tudo mais, em um arquivo .rb reutilizável. O Carlos Brando postou sobre isso aqui e aqui, antes mesmo da versão 2.3.2 ser [...]
Deixe o seu comentário!