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