Как использовать (n) проклятия в Ruby?

Я хотел бы создать индикатор выполнения, чтобы указать статус пакетного задания в Ruby .

Я прочитал несколько руководств / библиотек по использованию (n) curses , ни один из которых не был особенно полезен для объяснения того, как создать «анимированный индикатор выполнения в терминале или использовать curses с Ruby .

Я уже знаю об использовании отдельного потока для отслеживания прогресса данного задания, я просто не знаю, как продолжить рисование индикатора выполнения.


Обновлять

Класс ProgressBar был невероятно простым, отлично решил мою проблему.

Ответов (4)

Решение

Возможно, вы сможете почерпнуть некоторые идеи по реализации из библиотеки Ruby / ProgressBar , которая генерирует текстовые индикаторы выполнения. Я наткнулся на него пару месяцев назад, но не использовал его.

Лично я считаю, что проклятия в этом случае излишни. Хотя curses lib хороша (и я часто использую ее сам), это PITA, которую нужно переучивать каждый раз, когда она мне не нужна в течение 12 месяцев, что должно быть признаком плохого дизайна интерфейса.

Если по какой-то причине вы не можете справиться с индикатором выполнения lib, Джои предложил свернуть свою собственную и выпустить ее под довольно бесплатной лицензией, чтобы получить мгновенное признание :)

В Windows curses работает "из коробки", ncurses - нет, а для индикатора выполнения должно быть достаточно curses. Итак, используйте curses вместо ncurses.

Кроме того, и curses, и ncurses представляют собой тонкие оболочки для библиотеки c - это означает, что вам действительно не нужны учебники, специфичные для Ruby.

Однако на сайте PickAxe вы можете скачать все примеры кода для книги. Файл "ex1423.rb" содержит демо-версию curses, в которой воспроизводится Pong - она ​​должна дать вам много материала, чтобы вы начали.

Очень поздний ответ и извините за саморекламу, но я создал библиотеку, чтобы показать прогресс в терминале.