tutorial rails instalar how gems gemas create ruby rubygems

rails - ¿Cuáles son los pasos necesarios para crear y publicar un rubygem propio?



ruby gems (6)

Entonces has creado una biblioteca de rubíes.

¿Cómo se crea y publica su rubygem? ¿Y qué trampas y trampas comunes existen para crear y publicar rubygems?


Hay varias herramientas para ayudarte a construir tus propias gemas. hoe y newgem son los más conocidos y tienen muchas buenas cualidades. Sin embargo, hoe se agrega a sí misma como una dependencia de su gema, y ​​newgem se ha convertido en una herramienta muy grande, que me resulta difícil de manejar cuando quiero crear y desplegar una gema rápidamente.

Mi herramienta favorita es Mr Bones por Tim Pease. Es liviano, funcional y no agrega dependencias a su proyecto. Para crear un proyecto con él, simplemente ejecute los bones <my_project_name> en la línea de comandos, y se construye un esqueleto para usted, completo con un directorio lib para su código, un directorio bin para sus herramientas y un directorio de prueba. La configuración está en un Rakefile , y es clara y concisa. Aquí está la configuración para un proyecto que hice hace unos meses:

load ''tasks/setup.rb'' ensure_in_path ''lib'' require ''friend-feed'' task :default => ''test'' PROJ.name = ''friend-feed'' PROJ.authors = ''Clinton R. Nixon'' PROJ.email = ''[email protected]'' PROJ.url = ''friend-feed.rubyforge.org'' PROJ.rubyforge_name = ''friend-feed'' PROJ.dependencies = [''json''] PROJ.version = FriendFeed::VERSION PROJ.exclude = %w(.git pkg)

Mr Bones tiene el conjunto estándar de funciones que usted esperaría: puede usarlo para empacar gemas y archivos tar de su biblioteca, así como también publicarlo en RubyForge y desplegar su documentación allí. Sin embargo, su característica principal es su capacidad de congelar su esqueleto en su directorio personal. Cuando ejecuta bones --freeze , se bones --freeze un directorio llamado .mrbones en su directorio de inicio. Puedes editar los archivos allí para crear un esqueleto para tus gemas que funcione de la manera en que trabajas, y a partir de ahí, cuando ejecutes los huesos para crear una nueva gema, usará tu esqueleto de gema personal. Puedes descongelar a Mr Bones ejecutando bones --unfreeze y tu esqueleto se respaldará, y el esqueleto predeterminado se usará nuevamente.

(Nota editorial: escribí una publicación de blog sobre esto hace varios meses, y la mayor parte de esto se copia de ella.)


Recomiendo github como un lugar para comenzar, especialmente para proyectos de código abierto.




De hecho, escribí un tutorial sobre exactamente esto, y lo escribí mientras estaba aprendiendo. Está más centrado en el juego que había escrito que en una biblioteca. Además, supone que desea construir la gema a través de rake en lugar de hacerlo usted mismo:

  • Parte 1 sobre cómo crear la gema.
  • Parte 2 sobre cómo ejecutar los binarios instalados por tu gema, y ​​obtener recursos.

hoe ya no se agrega como una dependencia como fuera de rubygems 1.2. Sus tareas de rake se centran en el despliegue del rubygem en rubyforge. Si solo quieres servir la gema de github, creo que hay algunas nuevas herramientas de tareas de rastrillo para ayudarte.