Comment utiliser (n) les malédictions dans Ruby?

Je voudrais créer une barre de progression pour indiquer l'état d'un travail par lots dans ruby .

J'ai lu quelques tutoriels / bibliothèques en utilisant (n) sorts , dont aucun particulièrement utile pour expliquer comment créer une barre de progression "animée" dans le terminal ou utiliser des malédictions avec ruby .

Je suis déjà conscient de l'utilisation d'un thread séparé pour surveiller la progression d'un travail donné, je ne suis pas sûr de savoir comment procéder pour dessiner une barre de progression.


Update

ProgressBar class was incredibly straight-forward, perfectly solved my problem.

0

4 Réponses

Sur les fenêtres, les malédictions fonctionnent hors de la boîte, ncurses ne fonctionne pas, et pour une barre de progression, les curses devraient suffire. Donc, utilisez des malédictions au lieu de ncurses.

De plus, les curses et les ncurses sont des wrappers très fins autour de la bibliothèque c, ce qui signifie que vous n'avez pas vraiment besoin de tutoriels spécifiques à Ruby.

Cependant, sur le site pour le PickAxe , vous pouvez télécharger tous les exemples de code pour le livre . Le fichier "ex1423.rb" contient une démo de malédictions qui joue à Pong - qui devrait vous donner beaucoup de matériel pour vous aider à démarrer.

0
ajouté

Personnellement, je pense que les malédictions sont exagérées dans ce cas. Alors que la malédiction lib est sympa (et je l'utilise souvent moi-même) c'est un PITA à réapprendre chaque fois que je n'en ai pas besoin depuis 12 mois ce qui doit être le signe d'une mauvaise conception d'interface.

Si pour une raison quelconque, vous ne pouvez pas continuer avec la barre de progression lib Joey suggéré rouler le vôtre et le libérer sous un jolie licence gratuite pour les félicitations instantanées :)

0
ajouté
@MeNoMore "PITA" n'est pas du code. C'est un acronyme pour "douleur dans le cul". N'utilisez pas le formatage de code pour de telles choses.
ajouté l'auteur Andrew Barber, source
@Andrew Barber :) vous m'avez fait rire maintenant je ne savais vraiment pas que PITA comme "douleur dans le cul", viens d'apprendre quelque chose, d'où je viens de PITA est quelque chose de totalement différent (Indice: même là, il n'est pas le code :) peut Google it), merci quand même
ajouté l'auteur CloudyMarble, source

Vous pourrez peut-être obtenir des idées d'implémentation à partir de la bibliothèque ruby / ProgressBar , qui génère des barres de progression de texte. Je suis tombé dessus il y a quelques mois mais je n'y ai pas fait usage.

0
ajouté
Note de mise à jour: Depuis ruby 2.1.0 (quelque temps en 2014) - les malédictions dans le fichier STDLIB ont été supprimées et est maintenant un bijou
ajouté l'auteur mraaroncruz, source
Prenez note: Actuellement à partir de 2012, les implémentations de ncurses dans le langage ruby ​​utilisent le ffi-ncurses gem. Les malédictions sont incluses dans le STDLIB de ruby.
ajouté l'auteur shadowbq, source

Réponse très tardive et désolé pour l'auto-promotion, mais j'ai créé la bibliothèque pour montrer les progrès dans le terminal.

0
ajouté