Bundler Bundler gestisce le dipendenze di un'applicazione durante tutto il suo ciclo di vita per progetti Ruby.
Comandi CLI comuni
bundle install # Installa tutte le gem richieste
bundle install -j4 # Installazione parallela con 4 worker
bundle update # Aggiorna tutte le gem alle versioni compatibili più recenti
bundle update rails # Aggiorna solo una gem specifica
bundle outdated # Verifica le gem obsolete
bundle exec <command> # Esegui un comando nel contesto del bundle
bundle show <gemname> # Mostra la directory di installazione della gem
bundle info <gemname> # Mostra i metadati della gem
bundle gem <my_gem> # Crea lo scheletro di una nuova gem
Sintassi di Gemfile
Dichiarazioni di base
source 'https://rubygems.org'
gem 'rails', '~> 7.1.0'
gem 'pg', '>= 1.5'
gem 'puma'
Riferimenti Git e GitHub
# Repository GitHub diretto
gem 'devise', github: 'heartcombo/devise'
# Ramo o tag Git specifico
gem 'devise', github: 'heartcombo/devise', branch: 'main'
gem 'nokogiri', git: 'https://github.com/sparklemotion/nokogiri.git', tag: 'v1.16.0'
Gruppi di dipendenze
group :development, :test do
gem 'rspec-rails'
gem 'factory_bot_rails'
end
group :production do
gem 'aws-sdk-s3'
end
Deployment in produzione
Nelle pipeline CI/CD e sui server, installa con il flag deployment per impedire modifiche al file Gemfile.lock:
# Deployment moderno con Bundler
bundle config set --local deployment 'true'
bundle config set --local without 'development test'
bundle install
Override locale delle gem
Indirizza una gem verso una directory locale durante lo sviluppo attivo:
bundle config local.my_gem ~/Developer/Projects/my_gem