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 aspec.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 descriptiondebe 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 conlicenses=

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) paraauthors

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_PATHcuando 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.


Artículos Relacionados
Dokku: La implementación de PaaS más pequeña que jamás has visto

Con la tecnología de Docker, puedes instalar Dokku en cualquier hardware. Úsalo en proveedores de nube económicos. ¿Qué es Dokku? Dokku es una plataforma como servicio extensible de código abierto que se ejecuta en un único servidor de su elección. Dokku admite la creación ¡SEGUIR LEYENDO!

Hoja de trucos Completa de React JS

React es una biblioteca de JavaScript para crear interfaces de usuario. Esta chuleta está dirigida a las versiones de React 15 y 16. Componentes import React from 'react' import ReactDOM from 'react-dom' class Hello extends React.Component { render () { return <div className='message-box'> Hello ¡SEGUIR LEYENDO!

Novedades de Microsoft NET 5

La segunda versión candidata (release candidate) de Microsoft de .NET 5 fue anunciada el 13 de Octubre. Con la nueva versión Microsoft cada vez se encuentra más cerca de la fusión entre el framework .NET Framework y el core .NET. La nueva plataforma de ¡SEGUIR LEYENDO!

Deja un comentario