0Pricing
Ruby Academy · Lección

Estructura de una gema

Archivos y gemspec

Estructura de una gema es una lección gratuita de Ruby Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Ruby Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Ruby Academy incluye 4 lecciones en total.

¿Qué es una gema?

Una gema es una biblioteca o aplicación de Ruby empaquetada que se puede instalar, versionar y compartir mediante RubyGems. Casi todas las herramientas de Ruby que utiliza son gemas.

  • Una gema reúne código, metadatos y dependencias.
  • Los metadatos se encuentran en un archivo gemspec.
  • Herramientas como bundler y gem gestionan las gemas.

Generar una estructura inicial

La forma más rápida de empezar es bundle gem mygem. Este comando crea la estructura de directorios estándar, un gemspec, una carpeta de pruebas, un README y una licencia. Después, debe completar el código.

La estructura estándar

Una gema típica llamada mygem tiene este aspecto:

  • lib/mygem.rb, el archivo de entrada.
  • lib/mygem/, archivos de código fuente adicionales.
  • lib/mygem/version.rb, la constante de versión.
  • mygem.gemspec, los metadatos.
  • test/ o spec/, las pruebas.
  • README.md y un archivo de licencia.

El archivo de entrada

lib/mygem.rb se carga cuando alguien ejecuta require 'mygem'. Normalmente requiere el archivo de versión y el resto de la biblioteca, y define el módulo de nivel superior.

module Mygem
  def self.greet(name)
    "Hello, " + name
  end
end

puts Mygem.greet("world")

El archivo de versión

Mantener la versión en su propio archivo permite que tanto el gemspec como el código la lean. La convención consiste en usar una constante VERSION dentro del módulo de la gema.

module Mygem
  VERSION = "0.1.0"
end

puts "Current version: " + Mygem::VERSION

¿Qué es un gemspec?

El gemspec es un archivo de Ruby que describe la gema: su nombre, versión, autor, resumen, archivos y dependencias. RubyGems lo lee para compilar y publicar el paquete.

Es código Ruby normal, por lo que puede calcular valores, pero manténgalo sencillo y declarativo.

Un gemspec mínimo

Los campos fundamentales son el nombre, la versión, los autores, el resumen y los archivos. Esta es la estructura, escrita como Ruby normal que podría colocar en mygem.gemspec.

require "ostruct"

spec = OpenStruct.new
spec.name = "mygem"
spec.version = "0.1.0"
spec.authors = ["Your Name"]
spec.summary = "A tiny example gem"

puts spec.name + " " + spec.version

Enumerar archivos

El gemspec debe declarar qué archivos se incluirán en la gema. Muchos gemspecs consultan git para obtener los archivos bajo seguimiento y no olvidar ninguno:

spec.files = Dir['lib/**/*.rb'] + ['README.md']

Solo se empaquetan los archivos enumerados, por lo que olvidar uno provoca una instalación defectuosa.

Declarar dependencias

En el gemspec se incluyen dos tipos de dependencias:

  • add_dependency para las necesidades de ejecución que los usuarios deben instalar.
  • add_development_dependency para las herramientas que se usan únicamente durante el desarrollo, como los frameworks de pruebas.

Use restricciones de versión como '~> 1.2' para mantener la compatibilidad.

Versión requerida de Ruby

Establezca spec.required_ruby_version para que los usuarios con una versión de Ruby demasiado antigua reciban un error claro en lugar de un fallo confuso. También complete homepage, license y metadata para crear una gema bien preparada.

required = ">= 3.0.0"
current = RUBY_VERSION
puts "Requires Ruby " + required
puts "Running Ruby " + current

Compilar la gema

Cuando el gemspec esté listo, gem build mygem.gemspec produce un archivo .gem. Puede instalarlo localmente con gem install ./mygem-0.1.0.gem para probarlo antes de publicarlo.

Comprobación rápida

Compruebe su comprensión de la estructura de una gema.

Resumen: estructura de una gema

Ha aprendido cómo se organiza una gema:

  • bundle gem crea la estructura inicial.
  • lib/mygem.rb es el punto de entrada.
  • La versión se encuentra en su propio archivo.
  • El gemspec contiene los metadatos, los archivos y las dependencias.
  • gem build la empaqueta.

A continuación, organizaremos el código propiamente dicho dentro de la gema.

Preguntas frecuentes

¿La lección «Estructura de una gema» es gratis?

Sí — el texto completo de «Estructura de una gema» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Ruby Academy, actualiza a CoddyKit PRO. El curso de Ruby Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Estructura de una gema»?

Archivos y gemspec Practicas Ruby Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Ruby Academy?

No se requiere experiencia previa. Ruby Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Estructura de una gema»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Ruby Academy?

Sí. Cada lección de Ruby Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Estructura de una gema
  2. Escritura del código
  3. Pruebas y versionado
  4. Publicación en RubyGems
← Volver a Ruby Academy