Buscar..


Instalando gemas de rubí

Esta guía asume que ya tienes Ruby instalado. Si está utilizando Ruby < 1.9 , deberá instalar RubyGems manualmente, ya que no se incluirá de forma nativa .

Para instalar una gema rubí, ingrese el comando:

gem install [gemname]

Si está trabajando en un proyecto con una lista de dependencias de gemas, éstas se enumerarán en un archivo llamado Gemfile . Para instalar una nueva gema en el proyecto, agregue la siguiente línea de código en el Gemfile :

gem 'gemname'

La gema de Bundler utiliza este Gemfile para instalar las dependencias que requiere su proyecto; sin embargo, esto significa que tendrá que instalar primero Bundler ejecutando (si aún no lo ha hecho):

gem install bundler

Guarde el archivo y luego ejecute el comando:

bundle install

Especificando versiones

El número de versión se puede especificar en el comando live, con el indicador -v , como por ejemplo:

gem install gemname -v 3.14

Al especificar los números de versión en un Gemfile , tiene varias opciones disponibles:

  • No se ha especificado ninguna versión ( gem 'gemname') : instalará la última versión que sea compatible con otras gemas en el Gemfile .
  • Versión exacta especificada ( gem 'gemname', '3.14' ): solo intentará instalar la versión 3.14 (y fallará si esto es incompatible con otras gemas en el Gemfile ).
  • Número de versión mínimo optimista ( gem 'gemname', '>=3.14' ): solo intentará instalar la última versión que sea compatible con otras gemas en el Gemfile , y falla si ninguna versión mayor o igual a 3.14 es compatible. El operador > también se puede utilizar.
  • Número de versión mínimo pesimista ( gem 'gemname', '~>3.14' ) - Esto es funcionalmente equivalente a usar gem 'gemname', '>=3.14', '<4' . En otras palabras, solo se permite aumentar el número después del período final .

Como práctica recomendada : es posible que desee utilizar una de las bibliotecas de administración de versiones de Ruby como rbenv o rvm . A través de estas bibliotecas, puede instalar diferentes versiones de tiempos de ejecución y gemas de Ruby en consecuencia. Por lo tanto, cuando trabaje en un proyecto, esto será especialmente útil porque la mayoría de los proyectos están codificados contra una versión conocida de Ruby.

Instalación de gemas desde github / filesystem

Puedes instalar una gema desde github o sistema de archivos. Si la gema se ha extraído de git o de alguna manera ya se encuentra en el sistema de archivos, puede instalarla usando

gem install --local path_to_gem/filename.gem

Instalación de gema de github. Descarga las fuentes de github

mkdir newgem
cd newgem
git clone https://urltogem.git

Construir la gema

gem build GEMNAME.gemspec
gem install gemname-version.gem

Comprobando si una gema requerida está instalada desde el código

Para verificar si una gema requerida está instalada, desde su código, puede usar lo siguiente (usando nokogiri como ejemplo):

begin
  found_gem = Gem::Specification.find_by_name('nokogiri')
  require 'nokogiri'
  ....
  <the rest of your code>
rescue Gem::LoadError
end

Sin embargo, esto se puede extender aún más a una función que se puede usar para configurar la funcionalidad dentro de su código.

def gem_installed?(gem_name)
  found_gem = false
  begin
    found_gem = Gem::Specification.find_by_name(gem_name)
  rescue Gem::LoadError
     return false
  else
    return true
  end
end

Ahora puede verificar si la gema requerida está instalada e imprimir un mensaje de error.

if gem_installed?('nokogiri')
  require 'nokogiri'
else
  printf "nokogiri gem required\n"
  exit 1
end

o

if gem_installed?('nokogiri')
  require 'nokogiri'
else
  require 'REXML'
end

Usando un Gemfile y Bundler

Un Gemfile es la forma estándar de organizar dependencias en su aplicación. Un Gemfile básico se verá así:

source 'https://rubygems.org'

gem 'rack'
gem 'sinatra'
gem 'uglifier'

Puede especificar las versiones de la gema que desee de la siguiente manera:

# Match except on point release. Use only 1.5.X
gem 'rack', '~>1.5.2'
# Use a specific version.
gem 'sinatra', '1.4.7'
# Use at least a version or anything greater.
gem 'uglifier', '>= 1.3.0'

También puedes sacar gemas directamente de un repositorio de git:

# pull a gem from github
gem 'sinatra', git: 'https://github.com/sinatra/sinatra.git'
# you can specify a sha
gem 'sinatra', git: 'https://github.com/sinatra/sinatra.git', sha: '30d4fb468fd1d6373f82127d845b153f17b54c51'
# you can also specify a branch, though this is often unsafe
gem 'sinatra', git: 'https://github.com/sinatra/sinatra.git', branch: 'master'

También puedes agrupar gemas dependiendo de para qué se usan. Por ejemplo:

group :development, :test do
    # This gem is only available in dev and test, not production.
    gem 'byebug'
end

Puede especificar en qué plataforma deben ejecutarse ciertas gemas si su aplicación necesita poder ejecutarse en múltiples plataformas. Por ejemplo:

platform :jruby do
  gem 'activerecord-jdbc-adapter'
  gem 'jdbc-postgres'
end

platform :ruby do
  gem 'pg'
end

Para instalar todas las gemas de un Gemfile haz:

gem install bundler
bundle install

Bundler / inline (bundler v1.10 y posteriores)

A veces necesitas hacer un guión para alguien pero no estás seguro de lo que tiene en su máquina. ¿Hay todo lo que tu guión necesita? No es para preocuparse. Bundler tiene una gran función llamada en línea.

Proporciona un método gemfile y, antes de que se ejecute el script, se descarga y requiere todas las gemas necesarias. Un pequeño ejemplo:

require 'bundler/inline' #require only what you need

#Start the bundler and in it use the syntax you are already familiar with
gemfile(true) do 
  source 'https://rubygems.org'
        gem 'nokogiri', '~> 1.6.8.1'
        gem 'ruby-graphviz'
end


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow