¿Qué es una gema? – Guías de RubyGems
On octubre 24, 2021 by adminDescubre el misterio que hay detrás de una RubyGem.
Estructura de una Gem
Cada gem tiene un nombre, una versión y una plataforma. Por ejemplo, la gemaerake tiene una versión 0.8.7
(de mayo,2009). La plataforma de Rake es ruby
, lo que significa que funciona en cualquier plataforma en la que Rubyruns.
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 sólo funciona con un ruby construido para la misma plataforma. RubyGems descargará automáticamente la versión correcta para tu plataforma. Ver gem help platform
para más detalles.
Dentro de las gemas se encuentran los siguientes componentes:
- Código (incluyendo pruebas y utilidades de apoyo)
- Documentación
- gemspec
Cada gema sigue la misma estructura estándar de organización del código:
% tree freewillfreewill/├── bin/│ └── freewill├── lib/│ └── freewill.rb├── test/│ └── test_freewill.rb├── README├── Rakefile└── freewill.gemspec
Aquí puedes ver los principales componentes de una gema:
- El directorio
lib
contiene el código de la gema - El directorio
test
ospec
contiene las pruebas, dependiendo del testframework que utilice el desarrollador - Una gema suele tener un
Rakefile
, que el programaerake utiliza para automatizar pruebas, generar código y realizar otras tareas. - Esta gema también incluye un archivo ejecutable en el directorio
bin
, que se cargará en elPATH
del usuario cuando se instale la gema. - La documentación se incluye generalmente en el
README
y en línea con el código.Cuando se instala una gema, la documentación se genera automáticamente para usted.La mayoría de las gemas incluyen la documentación RDoc, pero algunos utilizan YARD docs en su lugar. - La pieza final es el gemspec, que contiene información sobre la gema.Los archivos de la gema, la información de las pruebas, la plataforma, el número de versión y mucho más se exponen aquí junto con el correo electrónico y el nombre del autor.
Más información sobre el archivo gemspec
Construyendo tu propia gema
El Gemspec
El gemspec especifica la información sobre una gema como su nombre, versión, descripción, autores y página web.
Aquí tienes un ejemplo de archivo gemspec. Puedes aprender más en cómo hacer agem.
% cat freewill.gemspecGem::Specification.new do |s| s.name = 'freewill' s.version = '1.0.0' s.summary = "Freewill!" s.description = "I will choose Freewill!" s.authors = s.email = '[email protected]' s.homepage = 'http://example.com/freewill' s.files = end
Deja una respuesta