RubyGems: ¿Qué es una Gema? (4)

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       = 'nick@quaran.to'
  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.


<<

Pablo, Técnico en Sistemas Informáticos y Redes

Compartir
Publicado por
Pablo, Técnico en Sistemas Informáticos y Redes
Etiquetas: RubyRubygems

Entradas recientes

Juegos Gratis de Epic Games hasta el 20 de noviembre: ScourgeBringer, Songs of Silence y Zero Hour

Si eres un amante de los videojuegos, estás de suerte. Hasta el 20 de noviembre…

2 horas hace

Premio Nobel se une a Bigtechs para trabajar en construir Computadoras Cuánticas personales

La computación cuántica acaba de dar un salto gigante. John M. Martinis, recién galardonado con…

4 horas hace

La biografía de Steve Jobs escrita por el biógrafo Walter Isaacson

La biografía más vendida del cofundador de Apple, Steve Jobs; escrita por uno de los…

2 días hace

Cómo la Inteligencia Artificial está Revolucionando los Sistemas de Seguridad en el Hogar

Hubo un tiempo en el que la “seguridad en el hogar” significaba confiar en un…

2 días hace

Elon Musk se asegura una compensación de 1 billón de dólares con Tesla

Elon Musk vuelve a romper todos los esquemas. Los accionistas de Tesla acaban de aprobar…

2 días hace

GTA 6 se retrasa hasta finales de 2026

Los fans de Grand Theft Auto tendrán que esperar un poco más para volver a…

5 días hace