Instalando dependências em aplicações Ruby com Bundler

Tutoriais - 28/Abr/2021 - por Marcus Pereira

Assim como outras linguagens de programação, Ruby também tem um repositório de bibliotecas de código. Essas bibliotecas são chamadas de gems e quando as utilizamos dentro de nossos projetos, elas se tornam parte da aplicação e, por isso, as chamamos de dependências, já que sem elas o código não funcionaria.

O site Ruby Gems é um dos repositórios onde podemos visualizar diversas gems criadas pela comunidade. Depois de escolher uma gem para seu projeto, você pode instalá-la usando o comando:

$ gem install nome_da_gem

Com isso a dependência será instalada na aplicação, mas como essa informação poderia ser compartilhada com outras pessoas que poderiam vir a trabalhar no mesmo projeto? Como elas irão saber quais gems são necessárias para rodar a aplicação? Quando estamos trabalhando em um projeto em times é essencial que todos estejam utilizando as mesmas bibliotecas e essa informação pode ser facilmente compartilhada usando o Gemfile.

O Gemfile é um arquivo que gerencia as dependências de um projeto feito em Ruby e isso é fantástico! Pois agora, podemos listar todas as gems que iremos usar em um único lugar e compartilhar com outras pessoas.

Para começar, vamos criar um arquivo chamado Gemfile e dentro dele especificar a source (fonte) para o domínio oficial do Ruby Gems.

source 'https://rubygems.org'

A source é uma instrução para especificar de onde iremos baixar as dependências. Para contextualizar isso ainda mais, tenhamos como exemplo uma gem criada pela empresa campus code. O nome da gem será chamada de treinadev e, para deixar isso em um repositório privado, criamos o nosso próprio repositório fictício e referenciamos através do domínio: https://gems.campuscode.com.br. Podemos adicionar essa source, dentro do arquivo Gemfile, veja:

source 'https://rubygems.org'
source 'https://gems.campuscode.com.br'

Quando tentarmos instalar a gem treinadev, ela será procurada tanto na source ‘rubygems’ quanto na source gems.campuscode.

Como estamos usando o arquivo Gemfile para gerenciar as gems do projeto, iremos utilizar uma ferramenta chamada Bundler) que foi introduzida como padrão na versão 2.5.0 da linguagem Ruby. Assim como o comando gem, o bundler também é um gerenciador de dependências para a linguagem Ruby e com ele,iremos conseguir baixar todas as gems contidas no arquivo Gemfile. Mas antes precisamos saber se você já tem o bundler instalado. Para verificar, execute o comando:

$ bundle version
Bundler version 2.1.4 (2021-04-07 commit unknown)

Caso a versão do bundler tenha aparecido para você, significa que já está instalada. Caso, tenha dado o erro comando não encontrado, você pode instalar o bundler com o comando:

$ gem install bundler

Agora, precisamos editar o arquivo Gemfile adicionando as dependências que iremos utilizar:

source 'https://rubygems.org'

gem 'rails'

Adicionamos a gem rails, que faz referência ao framework Web Ruby on Rails e nos ajuda a criar aplicações Web de forma rápida, prática e concisa. Após adicionar a gem rails no arquivo Gemfile, iremos realizar a instalação com o comando:

$ bundle install

Esse comando vai percorrer todas as gems listadas no Gemfile e instalar cada uma delas (quando necessário).

Existe uma outra forma de instalar gems usando o comando bundle add:

$ bundle add rails

Esse comando vai instalar a gem rails, mas ela adiciona a biblioteca no final da lista de gems do gemfile. Por essa razão, nós preferimos incluir manualmente no arquivo para termos mais controle e organização.

Se tudo deu certo, podemos verificar se o Rails foi realmente instalado executando o comando rails version :

$ bundle exec rails version
Rails 6.1.3.1

Dependendo de quando você estará lendo esse tutorial, a versão do Ruby On Rails poderá ser diferente.

Agora que o Rails foi instalado, podemos criar uma nova aplicação usando o comando rails new:

$ bundle exec rails new campuscode

O comando rails new já cria um arquivo Gemfile para o projeto com as bibliotecas essenciais que ele tem como dependência. Então você não precisa se preocupar em criá-lo e pode adicionar outras gems neste mesmo arquivo.

Neste tutorial aprendemos a instalar bibliotecas Ruby utilizando o Bundler, no entanto, ele também pode ser utilizado para diferentes tarefas como atualizar, remover ou adicionar gems ao projeto. Você pode consultar os links abaixo para obter mais informações

Referências

Foto de perfil do autor
Marcus Pereira

Dev

Desenvolvedor, gosta de ler e apaixonado por mergulho. Gosta de falar sobre o mundo da tecnologia e ama dogs =)