web-dev-qa-db-fra.com

Ruby: Comment écrire une gemme?

Je voudrais écrire un package pour Ruby et le rendre disponible comme un joyau.
Quels sont les outils, les étapes et les pièges?
Existe-t-il de bons didacticiels, screencasts, etc., qui vous ont aidé à apprendre à le faire?

160
glmxndr

Guides de Rubygems.org est l'une des meilleures ressources pour écrire votre propre bijou.

Si vous utilisez Bundler dans votre application, vous voudrez peut-être consulter le guide de Ryan Bigg pour Développer un RubyGem en utilisant Bundler et le Railscast sur la création de gemmes avec Bundler .

Si vous êtes intéressé par des outils pour vous aider à écrire des gemmes:

Quelques tutoriels/guides:

215
Jack Chu

Vous n'avez pas besoin de commencer à écrire une gemme, il suffit d'écrire du code, d'écrire des tests, de l'utiliser comme vous le souhaitez, et une fois que vous en êtes satisfait, utilisez gem this pour générer le Rakefile approprié.

Cela aide si vous vous en tenez aux approches adoptées par d'autres gemmes (ayez un répertoire lib, évitez de nommer les fichiers d'une manière qui pourrait entrer en conflit avec d'autres gemmes, écrivez des tests si vous le pouvez, ayez un fichier Lisezmoi), mais ce n'est pas nécessaire.

Une fois que vous avez quelque chose à partager, mettez-le sur github et poussez-le sur gemcutter .

Ne pensez pas trop, n'utilisez pas de houe ou d'autres outils exagérés, amusez-vous, ne faites rien que je ne ferais pas.

6
cwninja

Voici comment je crée et publie habituellement des gemmes:

  1. Inscrivez-vous pour https://github.com
  2. Inscrivez-vous à https://rubygems.org
  3. $ gem install ore rubygems-tasks rdoc rspec
  4. $ mine awesome_gem
  5. cd awesome_gem/ et modifiez le README.rdoc et awesome_gem.gemspec, écrivez le code dans lib/awesome_gem/ et en ajoutant des tests RSpec dans specs/.
  6. lorsque vous êtes prêt à publier, mettez à jour le ChangeLog.rdoc fichier, exécutez rake spec et rake rerdoc, S'ouvrir html/index.html et vérifiez les éventuelles fautes de frappe.
  7. rake release
  8. (Facultatif) soumettez un lien et une explication de votre nouveau bijou génial à http://rubyflow.com

Asseyez-vous et profitez de la gloire de votre premier joyau. :)

6
postmodern