Has creado una biblioteca de ruby.¿Cuáles son los pasos necesarios para crear y publicar un rubygem propio?
¿Cómo se puede crear y publicar su rubygem? ¿Y qué trampas y trampas comunes existen para crear y publicar rubygems?
Has creado una biblioteca de ruby.¿Cuáles son los pasos necesarios para crear y publicar un rubygem propio?
¿Cómo se puede crear y publicar su rubygem? ¿Y qué trampas y trampas comunes existen para crear y publicar rubygems?
Existen varias herramientas para ayudar a construir sus propias joyas. 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 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 de 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 características que cabría esperar: se puede utilizar para empaquetar gemas y tarfiles de su biblioteca, así como libérelo en RubyForge y despliegue 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 copia 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. Puede descongelar Mr Bones ejecutando bones --unfreeze
y se realizará una copia de seguridad de su esqueleto, y el esqueleto predeterminado se volverá a utilizar.
(Nota de la redacción: escribí un post sobre esto hace varios meses, y la mayor parte de esta se copia de la misma.)
Recomiendo github como un lugar para comenzar, especialmente para proyectos de código abierto.
Y trata de una búsqueda en Google, así ... Muy primer resultado de búsqueda para mí ...
Usted también puede querer a la caja de la gema de la azada, que puede automatizar el proceso de creación de gemas
Ver: http://nubyonrails.com/articles/tutorial-publishing-rubygems-with-hoe
De hecho, me escribió un tutorial sobre exactamente esto, y lo escribí cuando estaba aprendiendo . Está más centrado en el juego que había escrito que en una biblioteca. Además, se supone que desea construir la gema a través de rastrillo en lugar de por su cuenta:
hoe ya no se agrega como una dependencia como 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 a modo de hoces para ayudar.
Cambié la respuesta a esta pregunta, ya que es mucho más descriptiva que "probar google". –