2008-09-23 17 views

Respuesta

6

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.)

+0

Cambié la respuesta a esta pregunta, ya que es mucho más descriptiva que "probar google". –

3

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

1

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:

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

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.

Cuestiones relacionadas