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

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

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

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


Обновление

Класс ProgressBar оказался невероятно простым и идеально решил мою проблему.

Решение

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

Комментарии (2)

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

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

Комментарии (2)

Очень поздно ответьте и жаль о сам продвижение, но я создал [библиотека] (https://rubygems.org/gems/progress), чтобы показать прогресс терминала.

Комментарии (0)

На windows curses работает из коробки, ncurses - нет, и для прогресс-бара curses должно быть достаточно. Поэтому используйте curses вместо ncurses.

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

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

Комментарии (0)