Neste post do blog, discutiremos como combinar o poder do rbenv e autoenv para gerenciar versões do Ruby e variáveis de ambiente em seus projetos de forma eficiente. Ao final deste post, você terá uma compreensão clara de como usar essas ferramentas juntas para melhorar ainda mais sua experiência de desenvolvimento Ruby.

Observação: este tutorial pressupõe que você já instalou rbenv e autoenv. Se ainda não o fez, siga as instruções de instalação do rbenv e autoenv.

Por que usar rbenv e autoenv juntos?

rbenv é uma ferramenta poderosa que permite gerenciar várias versões do Ruby facilmente. Por outro lado, autoenv ajuda a gerenciar variáveis de ambiente específicas de um diretório de projeto. Ao usar as duas ferramentas juntas, você pode garantir que está usando a versão correta do Ruby e as variáveis de ambiente certas para cada projeto, sem a necessidade de intervenção manual.

Configurando rbenv e autoenv

Antes de mergulhar em exemplos, vamos configurar o autoenv para funcionar com o rbenv. Para fazer isso, crie um novo arquivo .env em seu diretório de projeto e adicione as seguintes linhas:

export RBENV_VERSION=$(cat .ruby-version)
export PATH="$HOME/.rbenv/shims:$PATH"

A primeira linha define a variável de ambiente RBENV_VERSION com base no conteúdo do arquivo .ruby-version. A segunda linha garante que o diretório de atalhos do rbenv esteja no PATH, para que a versão correta do Ruby seja usada ao executar comandos do Ruby.

Exemplo 1: Alternando versões do Ruby

Suponha que você tenha dois projetos: projeto_a e projeto_b. Você deseja usar a versão do Ruby 2.7.4 para projeto_a e a versão do Ruby 3.0.2 para projeto_b. Aqui está como você pode fazer isso com o rbenv e o autoenv:

  1. Crie um arquivo .ruby-version em cada diretório de projeto:
echo "2.7.4" > project_a/.ruby-version
echo "3.0.2" > project_b/.ruby-version
  1. Crie um arquivo .env em cada diretório de projeto com o conteúdo mencionado anteriormente:
cp .env project_a/
cp .env project_b/

Agora, quando você navegar até projeto_a ou projeto_b, o autoenv definirá automaticamente a RBENV_VERSION e ajustará o PATH para usar a versão correta do Ruby.

Exemplo 2: Gerenciando variáveis de ambiente específicas do projeto

Vamos supor que projeto_a requer as seguintes variáveis de ambiente:

  • API_KEY: sua chave de API para um serviço de terceiros
  • SECRET_KEY: uma chave secreta para criptografar dados

Você pode adicionar essas variáveis ao arquivo .env em projeto_a desta maneira:

export RBENV_VERSION=$(cat .ruby-version)
export PATH="$HOME/.rbenv/shims:$PATH"
export API_KEY="sua_chave_api_aqui"
export SECRET_KEY="sua_chave_secreta_aqui"

Agora, quando você navegar até projeto_a, o autoenv definirá automaticamente a RBENV_VERSION, ajustará o PATH e definirá as variáveis de ambiente API_KEY e SECRET_KEY.

Conclusão

Ao usar o rbenv e o autoenv juntos, você pode gerenciar facilmente versões do Ruby e variáveis de ambiente específicas do projeto sem nenhuma intervenção manual. Essa combinação torna sua experiência de desenvolvimento Ruby mais eficiente e menos propensa a erros.

Não se esqueça de adicionar seus arquivos .env ao seu arquivo .gitignore para evitar comprometer informações confidenciais em seu sistema de controle de versão.

Com essa configuração em vigor, você desfrutará de um fluxo de trabalho de desenvolvimento Ruby sem problemas, personalizado para cada um de seus projetos. Boa codificação!