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

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

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

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


Обновить

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

4.08.2008 14:57:59
4 ОТВЕТА
РЕШЕНИЕ

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

20
4.08.2008 15:11:19
Обратите внимание: по состоянию на 2012 год реализации ncurses на языке ruby ​​используют гем ffi-ncurses . Проклятия включены в STDLIB рубина.
shadowbq 4.01.2013 19:41:44
Примечание об обновлении: по состоянию на Ruby 2.1.0 (некоторое время в 2014 году) - проклятия в STDLIB были удалены и теперь являются драгоценным камнем
mraaroncruz 5.05.2015 09:06:24

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

4
8.12.2010 21:29:29

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

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

4
23.05.2017 11:33:14
@MeNoMore "PITA" - это не код. Это сокращение от «боль в заднице». Не используйте форматирование кода для таких вещей.
Andrew Barber 7.02.2013 17:30:11
@ Эндрю Барбер :) ты меня рассмешил сейчас, я действительно не знал, что с PITA как "боль в заднице", просто узнал кое-что, откуда я родом из PITA, это что-то совершенно другое (подсказка: даже там это не код :) можно гуглить) все равно спасибо
CloudyMarble 8.02.2013 06:42:52

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

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

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

2
7.02.2013 17:29:17