RubyGems: Referencias archivo GEMSPEC (14)

La clase de especificación contiene la información de una gema. Por lo general, se define en un archivo .gemspec o Rakefile y se ve así:

Gema :: Especificación . nuevo  hacer  | s | 
s . nombre         = 'ejemplo' 
s . versión      = '0.1.0' 
s . licencias     = [ 'MIT' ]
s . resumen      = "¡Este es un ejemplo!" 
s . description = "¡Explicación mucho más larga del ejemplo!" 
s . autores      = [ "Ruby Coder" ]
s . correo electrónico        ='[email protected]' 
s . archivos        = [ "lib/ejemplo.rb" ]
s . página de inicio     = 'https://rubygems.org/gems/example' 
s . metadatos     = { "source_code_uri"  =>  "https://github.com/example/example" }
end

A partir de RubyGems 2.0, una especificación puede contener metadatos arbitrarios. Consulta las restricciones de metadata sobre el formato y el tamaño de los elementos de metadatos que puedes agregar a una especificación.

Atributos GEMSPEC requeridos

AUTHORS=( value )

Una lista de autores de esta gema.

Alternativamente, se puede especificar un solo autor asignando una cadena a spec.author

Uso:

spec.authors = ['John Jones', 'Mary Smith']

Files

Archivos incluidos en esta gema. No puede agregar a este descriptor de acceso, debe asignarlo.

Solo agregue archivos que pueda necesitar a esta lista, no directorios, etc.

Los directorios se eliminan automáticamente de esta lista cuando se construye una gema, otros que no son archivos provocan un error.

Uso:

require 'rake'
spec.files = FileList['lib/**/*.rb',
'bin/*',
'[A-Z]*'].to_a
# or without Rake...
spec.files = Dir['lib/**/*.rb'] + Dir['bin/*']
spec.files += Dir['[A-Z]*']
spec.files.reject! { |fn| fn.include? "CVS" }

Name

El nombre de esta GEMA.

Uso:

spec.name = 'rake'

Summary

Un breve resumen de la descripción de esta gema. Mostrado en gem list -d .

El description debe ser más detallado que el resumen.

Uso:

spec.summary = "This is a small summary of my gem"

Versión

La versión de esta gema.

La cadena de versión puede contener números y puntos, como 1.0.0 . Una gema es una gema ‘prelanzamiento’ si la versión tiene una letra, como 1.0.0.pre .

Uso:

spec.version = '0.4.1'

Atributos GEMSPEC recomendados

Descripción

Una larga descripción de esta gema.

La descripción debe ser más detallada que el resumen pero no excesivamente larga. Unos pocos párrafos es la longitud recomendada sin ejemplos ni formato.

Uso:

spec.description = <<-EOF
Rake is a Make-like program implemented in Ruby. Tasks and
dependencies are specified in standard Ruby syntax.
EOF

Email

Una dirección de correo electrónico de contacto (o direcciones) para esta gema

Uso:

spec.email = '[email protected]'
spec.email = ['[email protected]', '[email protected]']

Homepage

La URL de la página de inicio de esta gema

Uso:

spec.homepage = 'https://github.com/ruby/rake'

License=( o )

La licencia de esta gema.

La licencia no debe tener más de 64 caracteres.

Este debería ser solo el nombre de su licencia. El texto completo de la licencia debe estar dentro de la gema (en el nivel superior) cuando la construyas.

La forma más sencilla es especificar el ID de SPDX estándar spdx.org/licenses/ para la licencia. Idealmente, debe elegir uno que esté aprobado por OSI (Open Source Initiative) opensource.org/licenses/alphabetical .

Las licencias aprobadas por OSI más utilizadas son MIT y Apache-2.0. GitHub también proporciona un selector de licencias en choosealicense.com/ .

También puede usar un archivo de licencia personalizado junto con su gemspec y especificar un LicenseRef-, donde idstring es el nombre del archivo que contiene el texto de la licencia.

Debe especificar una licencia para su gema para que las personas sepan cómo se les permite usarla y las restricciones que le impone. No especificar una licencia significa que todos los derechos están reservados; otros no tienen derecho a usar el código para ningún propósito.

Puede establecer varias licencias con licenses=

Uso:

spec.license = 'MIT'

Licenses=( licenses )

La(s) licencia(s) de la biblioteca.

Cada licencia debe ser un nombre corto, no más de 64 caracteres.

Este debería ser solo el nombre de su licencia. El texto completo de la licencia debe estar dentro de la gema cuando la construyas.

Ver license= para más discusión

Uso:

spec.licenses = ['MIT', 'GPL-2.0']

Metadata

Los metadatos contienen datos adicionales para esta gema que pueden ser útiles para otros consumidores y los pueden configurar los autores de la gema.

Los elementos de metadatos tienen las siguientes restricciones:

  • Los metadatos deben ser un objeto Hash
  • Todas las claves y valores deben ser cadenas
  • Las claves pueden tener un máximo de 128 bytes y los valores pueden tener un máximo de 1024 bytes
  • Todas las cadenas deben ser UTF-8, no se permiten datos binarios

Puede usar metadatos para especificar enlaces a la página de inicio de su gema, base de código, documentación, wiki, lista de correo, rastreador de problemas y registro de cambios.

s.metadata = {
"bug_tracker_uri"   => "https://example.com/user/bestgemever/issues",
"changelog_uri"     => "https://example.com/user/bestgemever/CHANGELOG.md",
"documentation_uri" => "https://www.example.info/gems/bestgemever/0.0.1",
"homepage_uri"      => "https://bestgemever.example.io",
"mailing_list_uri"  => "https://groups.example.com/bestgemever",
"source_code_uri"   => "https://example.com/user/bestgemever",
"wiki_uri"          => "https://example.com/user/bestgemever/wiki"
"funding_uri"       => "https://example.com/donate"
}

Estos enlaces se usarán en la página de su gema en rubygems.org y deben pasar la validación contra la siguiente expresión regular.

%r{\Ahttps?:\/\/([^\s:@]+:[^\s:@]*@)?[A-Za-z\d\-]+(\.[A-Za-z\d\-]+)+\.?(:\d{1,5})?([\/?]\S*)?\z}

Required_ruby_version

La versión de Ruby requerida por esta gema

Uso:

spec.required_ruby_version = '>= 2.7.0'

Atributos de GEMSPEC Opcionales

Add_development_dependency( gem , *requirements )

Agrega una dependencia de desarrollo nombrada gem con requirements a esta gema.

Uso:

spec.add_development_dependency 'example', '~&gt; 1.1', '&gt;= 1.1.4'

Las dependencias de desarrollo no se instalan de forma predeterminada y no se activan cuando se requiere una gema.

Add_runtime_dependency( gem , *requirements )

Agrega una dependencia de tiempo de ejecución denominada gem con requirements a esta gema.

Uso:

spec.add_runtime_dependency 'example', '~&gt; 1.1', '&gt;= 1.1.4'

Author=( o )

Escritor singular (alternativo) para authors

Uso:

spec.author = 'John Jones'

Bindir

La ruta en la gema para scripts ejecutables. Por lo general, ‘papelera’

Uso:

spec.bindir = 'bin'

Cert_Chain

La cadena de certificados utilizada para firmar esta gema. Ver Gem::Seguridad para más detalles.

Executables

Ejecutables incluidos en la gema.

Por ejemplo, la gema rake tiene rake como ejecutable.

No especifica la ruta completa (como en bin/rake); se espera que todos los archivos de estilo de aplicación se encuentren en bindir. Estos archivos deben ser archivos Ruby ejecutables.

Los archivos que usan bash u otros intérpretes no funcionarán.

Los ejecutables incluidos solo pueden ser scripts Ruby, no scripts para otros lenguajes o binarios compilados.

Uso:

spec.executables << 'rake'

Extensions

Extensiones para compilar al instalar la gema, específicamente las rutas a los archivos de estilo extconf.rb utilizados para compilar extensiones.

Estos archivos se ejecutarán cuando se instale la gema, lo que hará que el código C (o lo que sea) se compile en la máquina del usuario.

Uso:

spec.extensions << 'ext/rmagic/extconf.rb'

Consulte Gem::Ext::Builder para obtener información sobre cómo escribir extensiones para gemas.

Extra_doc_files

Archivos adicionales para agregar a RDoc como README o doc/examples.txt

Cuando el usuario elige generar la documentación RDoc para una gema (normalmente en el momento de la instalación), todos los archivos de la biblioteca se envían a RDoc para su procesamiento.

Esta opción le permite tener algunos archivos sin código incluidos para un conjunto de documentación más completo.

Uso:

spec.extra_rdoc_files = ['README', 'doc/user-guide.txt']

Platform=( platform )

La plataforma en la que se ejecuta esta gema.

Suele ser Gem::Platform::RUBY o Gem::Platform::CURRENT.

La mayoría de las gemas contienen código Ruby puro; simplemente deben dejar el valor predeterminado en su lugar. Algunas gemas contienen código C (u otro) para ser compilado en una “extensión” de Ruby.

La gema debe dejar el valor predeterminado en su lugar a menos que el código solo se compile en un determinado tipo de sistema. Algunas gemas consisten en código precompilado (“gemas binarias”).

Es especialmente importante que establezcan el atributo de la plataforma de forma adecuada.

Un atajo es establecer la plataforma en Gem::Platform::CURRENT, lo que hará que el generador de gemas establezca la plataforma en el valor apropiado para el sistema en el que se realiza la compilación.

Si este atributo se establece en un valor no predeterminado, se incluirá en el nombre de archivo de la gema cuando se construya, como: nokogiri-1.6.0-x86-mingw32.gem

Uso:

spec.platform = Gem::Platform.local

Post_install_message

Un mensaje que se muestra después de instalar la gema.

Uso:

spec.post_install_message = "Thanks for installing!"

Rdoc_options

Especifica las opciones de rdoc que se utilizarán al generar la documentación de la API.

Uso:

spec.rdoc_options << '--title' << 'Rake -- Ruby Make' <<
'--main' << 'README' <<
'--line-numbers'

Require_paths=( val )

Caminos en la gema para agregar $LOAD_PATH cuando esta gema está activada. Si tiene una extensión que no necesita agregar "ext" a la ruta requerida, el proceso de creación de la extensión copiará los archivos de la extensión en “lib” por usted.

El valor predeterminado es "lib"

Uso:

# If all library files are in the root directory...
spec.require_paths = ['.']

Required_ruby_version=( req )

La versión de Ruby requerida por esta gema. La versión Ruby se puede especificar a nivel de parche:

$ ruby -v -e 'p Gem.ruby_version'
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.4.0]
#<Gem::Version "2.0.0.247">

También se pueden especificar versiones preliminares.

Uso:

# This gem will work with 1.8.6 or greater...
spec.required_ruby_version = '&gt;= 1.8.6'
# Only with final releases of major version 2 where minor version is at least 3
spec.required_ruby_version = '~&gt; 2.3'
# Only prereleases or final releases after 2.6.0.preview2
spec.required_ruby_version = '&gt; 2.6.0.preview2'
# This gem will work with 2.3.0 or greater, including major version 3, but lesser than 4.0.0
spec.required_ruby_version = '&gt;= 2.3', '&lt; 4'

Required_rubygems_version

La versión de RubyGems requerida por esta gema.

Required_rubygems_version=( req )

La versión de RubyGems requerida por esta gema.

Requirements

Enumera los requisitos externos (para RubyGems) que se deben cumplir para que esta gema funcione. Es simplemente información para el usuario.

Uso:

spec.requirements << 'libmagick, v6.0'
spec.requirements << 'A good graphics card'

Rubygems_version

La versión de RubyGems utilizada para crear esta gema.

No configure esto, se configura automáticamente cuando se empaqueta la gema.

Signing_key

La llave utilizada para firmar esta gema. Ver Gem::Seguridad para más detalles.


Relacionado

15 Mejores Lenguajes de Programación que Aprender

Una de las habilidades más importantes para aprender en el mundo de hoy en día, es saber programar con un lenguaje de programación. En la actualidad, las computadoras han entrado en casi todas las industrias, desde el piloto automático de un avión hasta el velocímetro digital de una bicicleta pasando por la inclusión del Internet de las cosas en los pequeños electrodomésticos. Casi todo lo que ¡SEGUIR LEYENDO!

Mejores Libros PDF de Programación y Tecnología GRATIS

Los Mejores Libros PDF Gratuitos de Informática. EL sitio perfecto para aprender a programar desde cero para principiantes con las mejores guías gratis. Esta es la mejor lista de libros de programación en PDF en español del mundo. Una completa biblioteca recopilada de cientos y cientos de libros en PDF que no encontrarás en ninguna parte más. Aquí, vas a encontrar libros enfocados hacía programadores. Sobre ¡SEGUIR LEYENDO!

Más de 1.500 Libros PDF en Inglés de Desarrollo Web, Programación, Seguridad, Robótica, Blockchain, Domótica y Mucho Más

La mejor lista de libros sobre lenguajes de programación en inglés de todo Internet. https://ciberninjas.com/zlibrary/ Libros de Python / Libros PHP / Libros Java / Libros Diseño Meta Listas atariarchives.org atariarchives.org pone a disposición en la Web libros, información y software para Atari y otras computadoras clásicas. Bento Bitsavers.org Bookboon: se requiere cookie de TI y programación</. (requiere @email) DZone - Hojas de trucos (gratis) Conceptf1.blogspot.com ¡SEGUIR LEYENDO!

Comparando Python con otros lenguajes de programación populares

Este artículo analiza los numerosos beneficios de Python como uno de los lenguajes de programación más importantes disponibles y por qué deberías considerar usarlo para tu proyecto de software en lugar de otras opciones populares. Python es considerado como uno de los lenguajes de programación más utilizados para aplicaciones sencillas y prácticas. Los especialistas en TI afirman tener al menos una comprensión rudimentaria de Python y ¡SEGUIR LEYENDO!

Crystal: Un nuevo lenguaje de programación que buscar integrar lo mejor de Ruby y C

Crystal, un nuevo lenguaje de programación de sistemas compilados y orientado a objetos que tiene como objetivo combinar la concisión y amabilidad de Ruby con la eficiencia de C. La versión 1.0 de Crystal tiene una sintaxis cercana a la de Ruby y presenta tipos inferidos estáticamente, enlaces C y macros. El lenguaje de Crystal podría atraer a los desarrolladores con experiencia en Ruby/Rails o Elixir/Phoenix. ¡SEGUIR LEYENDO!

Cursos de Udemy con Cupón Gratuito 2019 (en Inglés)(parte 2)

All courses are in English ? Estos son los cursos con cupones gratuitos que me han parecido más interesantes y existen en la actualidad dentro de la plataforma Online de Udemy. Los contenidos en los que están organizados se reparten en: las criptomonedas, el diseño gráfico, la programación y el diseño web, ofimática, productividad, marketing y SEO, las redes y la robótica El listado final se ¡SEGUIR LEYENDO!

Mejores cursos de introducción a la programación

Muchos de estos cursos ya están incluidos en nuestro recopilatorio de cursos en español, allí podrás encontrarlos ordenados por temáticas y navegación de botones. En este otro enlace, podrás encontrar libros. Si lo que deseas es aprender a programar, no dejes de investigar más en profundidad alrededor de toda la web; y también, puedes investigar entre los cientos de recursos gratis que te ofrece Ciberninjas. A ¡SEGUIR LEYENDO!

Deja un comentario