Ruby

09 de Fevereiro de 2024 - @Walmir Neto

Venho aqui para dá continuidade do projeto que eu mostrei Como instalar Ruby e Rails, hoje vou mostrar algumas gems que eu costumo usar para facilitar a vida 😉


dotenv-rails

Serve para carregar variáveis ambiente de .env no ENV em desenvolvimento. Para usar adicione o código abaixo no Gemfile no grupo de development e/ou test

group :development, :test do
  gem "dotenv-rails", "~> 2.8", ">= 2.8.1"
	...
end

Uma coisa que eu aconselho é colocar no .gitignore altere !/.env*.erb para !/.env.example, apesar de ter níveis de prioridade, gosto de fazer assim pois nunca precisei de usar com tantos níveis

Nesse caso o .env.example ficou assim:

## Application
#
PORT=3001

## Rails
#
RAILS_ENV=development
RAILS_MAX_THREADS=1
SECRET_KEY_BASE=a688359a75e796e4207d3ba7ab0c746a

## Database
#
DATABASE_HOSTNAME=127.0.0.1
DATABASE_USERNAME=rails
DATABASE_PASSWORD=SuperSecretPassword
DATABASE_NAME=rails_demo_development
DATABASE_POOL=5

Ai para funcionar é só duplicar para o .env.example para o .env e alterar para suas configurações

Já nas configurações do banco de dados config/database.yml para o ambiente de desenvolvimento

default: &default
  adapter: postgresql
  encoding: unicode
  host: <%= ENV["DATABASE_HOSTNAME"] %>
  username: <%= ENV.fetch("DATABASE_USERNAME", "postgres") %>
  password: <%= ENV.fetch("DATABASE_PASSWORD", "") %>
  pool: <%= ENV.fetch("RAILS_MAX_THREADS", 5) %>

rails_live_reload

Normalmente que vem do universo node tá acostumado com hot reload, essa gem é exatamente isso, um hot reload para rails. Acho ela muito útil quando está montando layout no inicio do projeto. Isso se o projeto não for api-only, se for esquece, talvez não faça tanto sentido

Mas ela é muito fácil de fazer o setup, só abri o terminal no root do projeto e:

⁠bundle add rails_live_reload
rails generate rails_live_reload:install
rails server

Com isso só colocar editor e browser lado a lado e ser feliz

rails-i18n

Mesmo quando não existe a necessidade de multi linguagem na aplicação, acho legal tentar usar usar I18n para os textos e nesse caso essa gem ajuda com as traduções do rails.