Как мне использовать (n)curses в Ruby?
Я хотел бы создать индикатор выполнения, чтобы указать состояние пакетного задания в Ruby
,
Я читал некоторые учебные пособия / библиотеки по использованию (n) curses, ни один из которых не был особенно полезен при объяснении того, как создать "анимированный" индикатор выполнения в терминале или при использовании curses с Ruby
,
Я уже знаю об использовании отдельного потока для контроля за выполнением данной работы, я просто не уверен, как приступить к рисованию индикатора выполнения.
Обновить
Класс ProgressBar был невероятно прост, отлично решил мою проблему.
4 ответа
Возможно, вы сможете получить некоторые идеи реализации из библиотеки Ruby/ProgressBar, которая генерирует текстовые индикаторы выполнения. Я наткнулся на него пару месяцев назад, но не использовал его.
Очень поздно отвечаю и извиняюсь за саморекламу, но я создал библиотеку, чтобы показать прогресс в терминале.
Лично я думаю, что проклятия в этом случае излишни. Хотя библиотека curses хороша (и я часто использую ее сама), это ПИТА, которую нужно переучивать каждый раз, когда она мне не нужна в течение 12 месяцев, что должно быть признаком плохого дизайна интерфейса.
Если по какой-то причине вы не можете продолжить работу с индикатором выполнения lib, Джои предложил свернуть свой собственный и выпустить его под довольно бесплатной лицензией за мгновенное признание:)
На окнах curses работает "из коробки", ncurses - нет, а для индикатора выполнения достаточно проклятий. Так что используйте проклятия вместо ncurses.
Кроме того, и curses, и ncurses являются тонкими оболочками вокруг библиотеки c - это означает, что вам не нужны специфические для Ruby учебники.
Однако на сайте для PickAxe вы можете скачать все примеры кода для книги. Файл "ex1423.rb" содержит демонстрационную программу curses с игрой в понг, которая должна дать вам много материала для продолжения работы.