Domanda

Vorrei creare una barra di avanzamento per indicare lo stato di un lavoro batch in Ruby.

Ne ho letti alcuni tutorial / biblioteche sull'utilizzo (n) maledizioni, nessuno dei quali è stato particolarmente utile per spiegare come creare un file "animato" barra di avanzamento nel terminale o utilizzando curses con Ruby.

Sono già a conoscenza dell'utilizzo di un thread separato per monitorare l'avanzamento di un determinato lavoro, semplicemente non sono sicuro di come procedere con il disegno di una barra di avanzamento.


Aggiornamento

Barra di avanzamento la lezione è stata incredibilmente semplice e ha risolto perfettamente il mio problema.

È stato utile?

Soluzione

Potresti essere in grado di ottenere alcune idee di implementazione da Libreria Ruby/ProgressBar, che genera barre di avanzamento del testo.Ci sono capitato per caso un paio di mesi fa ma non ne ho fatto alcun uso.

Altri suggerimenti

Risposta molto tardi e scusa per l'autopromozione, ma ho creato biblioteca per mostrare i progressi nel terminale.

Personalmente penso che le maledizioni siano eccessive in questo caso.Anche se la libreria curses è carina (e la uso spesso anch'io) è una PITA da imparare di nuovo ogni volta che non ne ho bisogno per 12 mesi, il che deve essere il segno di un pessimo design dell'interfaccia.

Se per qualche motivo non riesci ad andare d'accordo la barra di avanzamento lib suggerita da Joey lanciane uno tuo e rilascialo con una licenza piuttosto gratuita per complimenti istantanei :)

Su Windows, curses funziona immediatamente, ncurses no, e per una barra di avanzamento curses dovrebbe essere sufficiente.Quindi, usa curses invece di ncurses.

Inoltre, sia curses che ncurses sono sottilissimi wrapper attorno alla libreria c, il che significa che non hai davvero bisogno di tutorial specifici di Ruby.

Tuttavia, su sito per il piccone puoi scaricare tutti gli esempi di codice per il libro.Il file "ex1423.rb" contiene una demo di curses che riproduce Pong: dovrebbe darti molto materiale per iniziare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top