Melhores práticas para criar uma Aplicação Rails na ZAEZ
Definindo quais os padroes para se criar uma aplicação Rails na ZAEZ, ja configurando o ambiente para receber o testes de BDD utilizados na empresa.
rails new app-name --skip-test-unit
Adicionar ao arquivo Gemfile
as seguintes gems conforme a necessidade:
Gem para sistema de Login
gem "devise"
Gem para tratamento de níveis de acesso
gem "cancan", ">= 1.6.9"
Gem para trabalhar com strings de visualização no html
gem "RedCloth"
Gem para trabalhar com paginações
gem "will_paginate", "~> 3.0.0"
Gem para automatização de backups
gem "backup" , "3.0.25"
Gem para trabalhar com retorno e views em json
gem "rabl"
Gem para gerenciamento do cron do unix
gem "fog", "~> 1.4.0"
gem "whenever" , ">= 0.7.3"
Gem para manipulação de arquivos PDFs
gem "prawn"
Gem para trabalhar com recursos da amazon aws
gem "aws-sdk", ">= 1.8.5"
Gem para envio de email através do SES da amazon
gem "aws-ses"
Para o grupo de assets acrescentar as seguintes gems:
Gem para trabalhar com sass no rails
gem "sass-rails", "~> 3.2.3"
Gem para trabalhar com coffeescript no rails
gem "coffee-rails", "~> 3.2.1"
Gem para compactação dos arquivos de javascripts
gem "uglifier", ">= 1.0.3"
Gem para adicionar os recursos do Lol Framework
gem "lol_framework"
Para o grupo de development adicione as seguintes gems:
Gem utilizada para colocar o servidor de produção para rodar e envio do conteudo para deploy
gem "capistrano"
Gem para backup e restauração dos dados do banco
gem "yaml_db"
Gem que modifica a aparência da pagina de erro do rails
gem "better_errors", ">= 0.7.2"
Gem para excluir as linhas de output no console de compilação dos assets e envio dos mesmos, enquanto o servidor de dev esta rodando
gem "quiet_assets", ">= 1.0.2"
Gem para debug no browser
gem "binding_of_caller"
Para o grupo de development e test adicione as seguintes gems:
Gem de utilização do banco de dados
gem "sqlite3"
Gem para testes de browser
gem "capybara",">= 2.0.3"
Gem para teste automatico
gem "ZenTest", "~> 4.4.2"
gem "autotest-rails", "~> 4.1.0"
Gem para notificação dos testes executados
gem "autotest-growl", ">= 0.2.16"
gem "autotest-fsevent", ">= 0.2.8"
Gem para criação de fakes nos testes
gem "factory_girl_rails", ">= 4.2.0"
Para o grupo de production adicione as seguintes gems:
Gem do servidor de produção
gem "unicorn"
Gem do banco de dados
gem "mysql2"
O arquivo final com todas as gems selecionadas ficará assim:
gem "devise"
gem "cancan", ">= 1.6.9"
gem "RedCloth"
gem "will_paginate", "~> 3.0.0"
gem "backup" , "3.0.25"
gem "rabl"
gem "fog", "~> 1.4.0"
gem "whenever" , ">= 0.7.3"
gem "prawn"
gem "aws-sdk", ">= 1.8.5"
gem "aws-ses"
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'uglifier', '>= 1.0.3'
gem 'lol-framework'
end
group :development do
gem 'capistrano'
gem 'yaml_db'
gem "better_errors", ">= 0.7.2"
gem "quiet_assets", ">= 1.0.2"
gem "binding_of_caller"
end
group :test, :development do
gem 'sqlite3'
gem "capybara", ">= 2.0.3"
gem "ZenTest", "~> 4.9.1"
gem "autotest-growl", ">= 0.2.16"
gem "autotest-fsevent", ">= 0.2.8"
gem "autotest-rails", "~> 4.1.0"
gem "test_notifier", '>= 1.0.1'
end
group :production do
gem 'unicorn'
end
Adicionar ao ".gitignore"
# Excluindo arquivos do RubyMine
/.idea
No terminal execute dentro da pasta de sua aplicacão
rails g rspec:install
Crie e adicione ao arquivo .autotest
o seguinte conteúdo:
require 'autotest/fsevent'
require 'autotest/growl'
Autotest.add_discovery { "rspec2" }
Autotest.add_hook :initialize do |autotest|
%w{.git .DS_Store ._* vendor tmp}.each { |exception| autotest.add_exception(exception) }
autotest.add_mapping(%r{^lib/.*\.rb$}) {|f, _|
Dir['spec/**/*_spec.rb']
}
false
end
Troque todo o conteúdo do arquivo .rspec
por:
--color
--fail-fast
--format documentation
#--format progress