Usar Bundler para instalar Ruby gems

Generalidades

Si tu aplicación Ruby no inicia por una gema perdida, debes instalarla localmente usando Bundler.

Bundler provee un ambiente constante para los proyectos Ruby rastreando e instalando las gemas exactas y las versiones que tu necesitas. Bundler prevé dependencias y asegura que las gemas que necesitas esten presentes en desarrollo, andamiaje y producción. Empezar a trabajar en un proyecto es tan simple como correr el comando bundle install.

Lo siguiente describe cómo configurar y usar Bundler para tus aplicaciones RubyGem.

Configurar Bundler

Este artículo asume que ya has configurado el sitio Ruby on Rails basado en las siguientes guías de instalación:

  1. Abre una ventana terminal y corre el siguiente comando:
    [server]$ gem install bundler
    
  2. Navega a tu directorio root del proyecto.
  3. Especifica tus dependencias en un Gemfile Gemfile (archivo Gem):
    source 'https://rubygems.org'
    gem 'nokogiri'
    gem 'rack', '~>1.1'
    gem 'rspec', :require => 'spec'
    
  4. Instala todas las gemas requeridas de tus fuentes especificadas.
    [server]$ bundle install
    

    El segundo comando agrega el Gemfile y Gemfile.lock para tu repositorio, lo cual asegura otros desarrollos en tu app, como tu ambiente desplegado, todos usan los mismos códigos de terceros que estas usando ahora.

  5. Dentro de tu app, carga el ambiente bundle:

    Este paso es necesario solamente si no estás corriendo RVM.

    require 'rubygems'
    require 'bundler/setup'
    
    # require your gems as usual
    require 'nokogiri'
    
  6. Corre un ejecutable que venga con una gema en tu bundle:
    [server]$ bundle exec rspec spec/models
    

    En algunos casos, correr ejecutables sin bundle exec puede funcionar, si el ejecutable está instalado en tu sistema y no saca ninguna gema que haga conflicto con tu bundle. Sin embargo, esto es no es seguro ni recomendable. Aún cuando pareciera que funciona, puede no hacerlo en el futuro u otras máquinas.

  7. Para crear un atajo a gemas en tu bundle, corre lo siguiente:
    [server]$ bundle install --binstubs
    
    [server]$ bin/rspec spec/models
    

Estos ejecutables instalados dentro de bin son alcanzados dentro del bundle, y siempre funcionará.

Crear un RubyGem con Bundler

Bundler es también una manera fácil para crear nuevas gemas. Justo como puedes crear un proyecto de Rails estándar usando nuevos rails, puedes crear un proyecto de gema estándar con bundle gem.
Crear una nueva gema con README, gemspec, Rakefile, estructura de directorios y todos los códigos repetitivos que necesites describir, probar, y publicar una gema:

[server]$ bundle gem my_gem

create  my_gem/Gemfile
      create  my_gem/.gitignore
      create  my_gem/lib/my_gem.rb
      create  my_gem/lib/my_gem/version.rb
      create  my_gem/my_gem.gemspec
      create  my_gem/Rakefile
      create  my_gem/README.md
      create  my_gem/bin/console
      create  my_gem/bin/setup
      create  my_gem/CODE_OF_CONDUCT.md
      create  my_gem/LICENSE.txt
      create  my_gem/.travis.yml
      create  my_gem/test/test_helper.rb
      create  my_gem/test/my_gem_test.rb
Initializing git repo in ./my_gem

Usar Bundler con aplicaciones Ruby

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.