Ruby: ¿Cómo escribir una gema? [cerrado]

160

Me gustaría escribir un paquete para Ruby y ponerlo a disposición como una gema.
¿Cuáles son las herramientas, los pasos y las trampas?
¿Hay buenos tutoriales, screencasts, etc., que te hayan ayudado a aprender cómo hacerlo?

glmxndr
fuente

Respuestas:

216

Las Guías de Rubygems.org son uno de los mejores recursos para escribir su propia gema.

Si está utilizando Bundler en su aplicación, puede consultar la guía de Ryan Bigg para desarrollar un RubyGem usando Bundler y Railscast sobre la creación de gemas con Bundler .

Si estás interesado en herramientas que te ayuden a escribir gemas:

Algunos tutoriales / guías:

Jack Chu
fuente
3
gem buildes proporcionado por el propio RubyGems. Toda la gema Gemcutter (y pronto, RubyGems propiamente dicha) le permite hacer es empujar un RubyGem utilizando la API. gemcutter.org/pages/gem_docs gemcutter.org/pages/api_docs
qrush
Gracias, he editado la respuesta.
Jack Chu
6

Así es como generalmente creo y lanzo Gems:

  1. Regístrese para https://github.com
  2. Regístrese para https://rubygems.org
  3. $ gem install ore rubygems-tasks rdoc rspec
  4. $ mine awesome_gem
  5. cd awesome_gem/y edite README.rdocy awesome_gem.gemspecescriba código lib/awesome_gem/y agregue pruebas de RSpec specs/.
  6. cuando esté listo para liberar, actualice el ChangeLog.rdocarchivo, ejecute rake specy rake rerdoc, abra html/index.htmly verifique si hay errores tipográficos.
  7. rake release
  8. (Opcional) envíe un enlace y una explicación de su nueva joya increíble a http://rubyflow.com

Siéntate y disfruta de la gloria de tu primera gema. :)

posmoderno
fuente
6

No necesita comenzar a escribir una gema, solo escriba un código, escriba algunas pruebas, úsela como desee, y una vez que esté satisfecho con ella, use esta gema para generar el Rakefile relevante.

Ayuda si se apega a los enfoques que toman otras gemas (tenga un directorio lib, evite nombrar archivos de manera que puedan chocar con otras gemas, escriba algunas pruebas si puede, tenga un archivo Léame), pero no es necesario.

Una vez que tenga algo que quiera compartir, póngalo en github y empújelo a gemcutter .

No lo pienses demasiado, no uses azada u otras herramientas excesivas, diviértete, no hagas nada que yo no haría.

cwninja
fuente