DesenvolvimentoIntrodução ao Rails Composer

Introdução ao Rails Composer

-

Publicidade
Introdução ao Rails ComposerEste é um artigo bem curto para uma dica que é útil tanto para quem está começando como para quem cria muitos projetos o tempo todo. Todos conhecemos o bom e velho comando rails new novo_projeto que vai criar uma estrutura padrão de projetos. Porém, poucos de nós realmente usamos a estrutura padrão, sempre precisamos de muito mais hoje em dia. Em virtude desse requerimento, o Rails suporta um arquivo de templates onde você pode modificar o comportamento do rails new logo em seguida. Mas esse arquivo é um script chato de manter, chato de configurar.

Em vez disso podemos usar uma outra ferramenta que existe há algum tempo chamado Rails Composer. Assumindo que você já tenha RVM ou Rbenv instalado e configurado:

gem install rails
gem install rails_apps_composer
Agora, crie um diretório para seu projeto e chame o comandorails_apps_composer:

mkdir novo_projeto
cd novo_projeto
rails_apps_composer new . -r core

Ao executar esse comando ele vai começar a criar a nova estrutura de projeto e ao longo do caminho vai lhe fazer diversas perguntas para que você possa customizar seu projeto. Vamos ver as principais perguntas:

Would you like to skip Test::Unit? (yes for RSpec) (y/n) y

Certamente, queremos Rspec. Não nade contra a maré, já discuti o assunto Test::Unit vs RSpec anos atrás. Aprenda Rspec de uma vez!

Would you like to skip Active Record? (yes for MongoDB) (y/n) n

Essa vai ser mais controversa mas confie em mim: se você tem alguma dúvida sobre NoSQL, não use NoSQL. 99,99% dos casos você vai se dar muito melhor usando um SQL decente (ou seja, Postgresql). Já discuti brevemente esse assunto também.

What gem would you like to add? (blank to finish)

Se tiver dúvidas, pode deixar esta em branco. Algumas das coisas que você pensar provavelmente vão aparecer nas próximas perguntas. Mas de cabeça, certamente gems como simple_formfriendly_idhigh_voltagekaminari,rails_12factorbetter_errors são alguns bons exemplos de gems a se acrescentar. Mas novamente, dependendo do template que escolher a seguir, muitas dessas gems já virão juntas.

 question  Build a starter application?
       1)  Build a RailsApps example application
       2)  Build a contributed application
       3)  I want to build my own application
railsapps  Enter your selection: 1

 question  Please upgrade to Rails 4.1 for more starter apps.
       1)  learn-rails
railsapps  Enter your selection: 1

Esta é mais complicada e depende da versão de Rails que escolheu usar. A versão 3.x tem mais templates de aplicativos, a versão 4.1 também, mas a 4.0 só tem a “learn-rails”. Veja diretamente na receita do composer para entender. Vou escolher a primeira opção neste exemplo, vale a pena experimentar vários deles pra ver a diferença aqui.

  question  Web server for development?
      1)  WEBrick (default)
      2)  Thin
      3)  Unicorn
      4)  Puma
      5)  Phusion Passenger (Apache/Nginx)
      6)  Phusion Passenger (Standalone)
   setup  Enter your selection: 2

Aqui é uma questão de preferência. Alguns preferem usar exatamente o mesmo servidor em development que em production. Eu particularmente sempre escolho Thin, mas mais por costume.

  question  Web server for production?
      1)  Same as development
      2)  Thin
      3)  Unicorn
      4)  Puma
      5)  Phusion Passenger (Apache/Nginx)
      6)  Phusion Passenger (Standalone)
   setup  Enter your selection: 3

Novamente, aqui é mais por costume também que escolho Unicorn. Mas em production o Puma tem se provado uma excelente opção. O Phusion Passenger também está bastante competitivo contra o Unicorn. Vale instalar o New Relic e fazer testes em produção experimentando e tunando essas opções.

  question  Template engine?
      1)  ERB
      2)  Haml
      3)  Slim
   setup  Enter your selection: 3

Esta vai ser controversa, normalmente vai depender da qualidade e motivação dos seus programadores front-end. Na prática, hoje eu prefiro Slim. Por um motivo simples: ele tem quase a mesma performance do ERB e é mais legível e agradável de editar do que ERB. HAML pode ser duas vezes mais lento que ERB ou Slim, então prefiro não usá-lo.

  question  Continuous testing?
      1)  None
      2)  Guard
   setup  Enter your selection: 1

Eu não uso muito o Guard, mas novamente é uma questão de gosto. Normalmente me faz perder mais tempo do que ganhar só na configuração dele, conflitos de coisas que deveriam ter recarregado e não recarregou, specs que passam quando o Guard está rodando mas quando rodo a suite toda dá pau e outros mistérios que desisti de tentar resolver.

  question  Front-end framework?
      1)  None
      2)  Bootstrap 3.0
      3)  Bootstrap 2.3
      4)  Zurb Foundation 5.0
      5)  Zurb Foundation 4.0
      6)  Simple CSS
   setup  Enter your selection: 2

Novamente, uma questão de gosto. Um projeto para cliente, sério, certamente vai ser CSS do zero. Para coisas pequenas, protótipos, aplicativos pra jogar fora depois, tanto faz Bootstrap ou Zurb. Como aqui é um demo, então vou de Bootstrap 3.

extras  Set a robots.txt file to ban spiders? (y/n) y
extras  Create a GitHub repository? (y/n) n
extras  Use or create a project-specific rvm gemset? (y/n) n
...
extras  Add 'therubyracer' JavaScript runtime (for Linux users without node.js)? (y/n) y

As extras acima são simples. E depois disso bang você tem uma nova aplicação Rails mais completa e pronta para realmente começar a trabalhar do que o esqueleto padrão do Rails que é espartano demais e você iria acrescentar tudo isso manualmente de qualquer jeito.

E, claro, esta foi só a introdução para quem nunca viu esta gem e talvez tenha ficado em dúvida de o que ela faz. Mas além de poder escolher suas opções interativamente você pode criar suas próprias receitas. A documentação do arquivo README vai mostrar muito mais opções. Este artigo apenas mostra o pico do iceberg.

Divirtam-se!

Artigo publicado originalmente em http://www.akitaonrails.com/2014/03/25/introducao-ao-rails-composer

[Crédito da Imagem: ]

Fabio Akita
Codeminer 42 co-founder Brazilian Ruby Activist RubyConf Brazil Program Chairman Software Craftsmanship Evangelist Tech Speaker in many conferences LinkedIn: br.linkedin.com/in/akitaonrails

Latest news

Desvendando o Poder da IA no Excel: Dicas Práticas para Iniciantes e Intermediários

Descubra como a IA revolucionou o Excel. Aprenda como automatizar tarefas, analisar dados e otimizar seu fluxo de trabalho.

Azure VM vs Amazon EC2 vs Google CE: Saiba escolher a melhor cloud para você

3 maiores sistemas de nuvem são: Amazon Elastic Cloud 2, o Google ComputeEngine e Microsoft Azure Virtual Machines.

Inteligência Artificial e Cibersegurança: Os Novos Desafios da Era Digital

%%excerpt%% Descubra os riscos da Inteligência Artificial na cibersegurança, como ataques adversariais, phishing 2.0 e deepfakes, além de desafios éticos e legais.

IA que gera vídeos: O Guia Definitivo das Melhores Ferramentas de 2025

Descubra os 10 melhores geradores de vídeo por IA de 2025. Veja comparações reais, preços, APIs e escolha a ferramenta ideal para seu projeto.
Publicidade

Construindo Times de Sucesso: Como Equilibrar Similaridade e Diversidade de Perfis

Descubra estratégias de liderança para formar times de sucesso. Aprenda quando optar por perfis semelhantes para estabilidade e quando escolher perfis diversos para impulsionar a inovação.

Inteligência Artificial na Guerra Moderna: A Nova Fronteira do Combate

Como a Inteligência Artificial na guerra moderna está decidindo batalhas? Entenda a tecnologia por trás dos ataques de Israel e Irã e as táticas de IA que mudaram o combate.

Must read

Desvendando o Poder da IA no Excel: Dicas Práticas para Iniciantes e Intermediários

Descubra como a IA revolucionou o Excel. Aprenda como automatizar tarefas, analisar dados e otimizar seu fluxo de trabalho.

Azure VM vs Amazon EC2 vs Google CE: Saiba escolher a melhor cloud para você

3 maiores sistemas de nuvem são: Amazon Elastic Cloud 2, o Google ComputeEngine e Microsoft Azure Virtual Machines.
- Advertisement -

You might also likeRELATED
Recommended to you