RubyGems: Referencias archivo GEMSPEC (14)

Tutorial completo de Rubygems
Tutorial completo de Rubygems

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.


Relacionado

Utiliza el lenguaje de Ruby para generar publicaciones de ebooks

Muchas veces, la gente se pregunta para qué puede servir además de para utilizarlo junto a Rails. Bien, pues Ruby es ideal para varias tareas en diferentes campos de dominio y hoy vamos a compartir gustaría cómo cualquier persona puede usar Ruby para publicar un ebook ¡SEGUIR LEYENDO!

Si los Lenguajes de Programación fueran Superhéroes de Marvel serían..

Existen más de 750 lenguajes de programación en el universo de la programación y cada lenguaje de programación tiene un tono y un conjunto de características únicos. https://ciberninjas.com/mejores-lenguajes-programacion-2023/ No debería sorprender que este conjunto específico de características atraiga a los excéntricos, quienes ocasionalmente se reúnen para ¡SEGUIR LEYENDO!

Shopify invierte en realizar investigaciones sobre Ruby a escala

Shopify continúa invirtiendo en Ruby on Rails a escala, financiando a académicos de alto perfil para lograr enfocar su trabajo hacia el estudio de Ruby y las necesidades de la comunidad de Ruby. Durante el año pasado, Shopify entregó casi medio millón de dólares en obsequios ¡SEGUIR LEYENDO!

RubyGems: Publicar y compartir tu gema (8)

Ahora que has creado tu primera gema , probablemente estés listo para compartirla. Si bien, es perfectamente razonable crear gemas privadas únicamente para organizar el código en grandes proyectos privados, es más común crear gemas para que puedan ser utilizadas por varios proyectos. En esta guía ¡SEGUIR LEYENDO!

RubyGems: Prácticas de seguridad (9)

La instalación de una gema permite que el código de esa gema se ejecute en el contexto de tu aplicación. Claramente, eso tiene implicaciones de seguridad: La instalación de una gema maliciosa en un servidor podría resultar en última instancia en que el autor de la ¡SEGUIR LEYENDO!

Comentarios

No hay comentarios aún. ¿Por qué no comienzas el debate?

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *