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.
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:
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:
lib contiene el código de la gema.testo spec contiene pruebas, según el marco de prueba que utilice el desarrollador.Rakefile que es el programa rake que se usa para automatizar pruebas, generar código y realizar otras tareas.bin que se cargará en el PATH del usuario cuando se instale la gema.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.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.
<<
Si eres un amante de los videojuegos, estás de suerte. Hasta el 20 de noviembre…
La computación cuántica acaba de dar un salto gigante. John M. Martinis, recién galardonado con…
La biografía más vendida del cofundador de Apple, Steve Jobs; escrita por uno de los…
Hubo un tiempo en el que la “seguridad en el hogar” significaba confiar en un…
Elon Musk vuelve a romper todos los esquemas. Los accionistas de Tesla acaban de aprobar…
Los fans de Grand Theft Auto tendrán que esperar un poco más para volver a…