RubyGems: Guía completa para aprender a buscar, instalar y trabajar con gemas de Ruby
RubyGems: Guía completa para aprender a buscar, instalar y trabajar con gemas de Ruby

Una gema de Ruby es un pequeño continente que posee información bien estructurada que desempeña una función a la hora de ser implementado en un proyecto, principalmente de Ruby.

Estructura de una GEMA

Cada gema tiene un nombre, una versión y una plataforma. Por ejemplo, la gema de rake 0.8.7 tiene una versión (de mayo de 2009). La plataforma de Rake es ruby lo que significa que funciona en cualquier plataforma en la que se ejecute Ruby.

Las plataformas se basan en la arquitectura de la CPU, el tipo de sistema operativo y a veces, la versión del sistema operativo. Los ejemplos incluyen “x86-mingw32” o “java”.

La plataforma indica que la gema solo funciona con un rubí creado para la misma plataforma. RubyGems descargará automáticamente la versión correcta para su plataforma.

Ver gem help platform para mostrar los detalles completos.

Dentro de las gemas se encuentran los siguientes componentes:

  • Código (incluyendo pruebas y utilidades de soporte).
  • Documentación.
  • GEMA.

Cada gema sigue la misma estructura estándar de organización del código:

% tree freewill
freewill/
├── bin/
│   └── freewill
├── lib/
│   └── freewill.rb
├── test/
│   └── test_freewill.rb
├── README
├── Rakefile
└── freewill.gemspec

Aquí puedes encontrar los principales componentes de una gema:

  • El directorio lib contiene el código de la gema.
  • El directorio testo spec contiene pruebas, según el marco de prueba que utilice el desarrollador.
  • Una gema generalmente tiene un Rakefile que es el programa rake que se usa para automatizar pruebas, generar código y realizar otras tareas.
  • Las gemas, también pueden incluir un archivo ejecutable en el directorio bin que se cargará en el PATH del usuario cuando se instale la gema.
  • La documentación generalmente se incluye en el fichero README y en línea con el código. Cuando instalas una gema, la documentación se genera automáticamente. La mayoría de las gemas incluyen la documentación RDoc pero algunas usan documentos YARD en su lugar.
  • La pieza final es la GEMSPEC que contiene información sobre la gema. Los archivos de la gema, la información de la prueba, la plataforma, el número de versión y más son presentados junto con el correo electrónico y el nombre del autor.

GemSpec

El gemspec especifica la información sobre una gema; como su nombre, versión, descripción, autores y página de inicio.

Este es un ejemplo de un archivo gemspec. Puedes aprender más en cómo hacer una gema .

% cat freewill.gemspec
Gem::Specification.new do |s|
  s.name        = 'freewill'
  s.version     = '1.0.0'
  s.summary     = "Freewill!"
  s.description = "I will choose Freewill!"
  s.authors     = ["Nick Quaranto"]
  s.email       = '[email protected]'
  s.homepage    = 'http://example.com/freewill'
  s.files       = ["lib/freewill.rb", ...]
end

Para obtener más información sobre gemspec, puedes consultar la referencia de especificación completa que analiza cada campo de metadatos al detalle.


<<