Jak używać (n)curses w Ruby?

Chciałbym utworzyć pasek postępu, aby wskazać status zadania wsadowego w Ruby.

Przeczytałem kilka tutoriali / biblioteki o używaniu(n)curses , z których żadna nie była szczególnie pomocna w wyjaśnieniu, jak utworzyć"animowany" pasek postępu w terminalu lub używając klątw z Ruby.

Jestem już świadomy używania osobnego wątku do monitorowania postępów w danym zadaniu, tylko Nie wiem jak postępować z rysowaniem postępów bar.


Update

ProgressBar klasa była niesamowicie prosta, doskonale rozwiązała mój problem.

Author: Lahiru, 2008-08-04

4 answers

Być może będziesz w stanie uzyskać kilka pomysłów implementacji z Biblioteki Ruby/ProgressBar, która generuje paski postępu tekstu. Natknąłem się na niego kilka miesięcy temu, ale nie skorzystałem z niego.

 19
Author: Joey deVilla,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-04 15:11:19

Bardzo późna odpowiedź i przepraszam za autopromocję, ale stworzyłem bibliotekę , aby pokazać postęp w terminalu.

 4
Author: tig,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-08 21:29:29

Osobiście uważam, że przekleństwa to przesada w tym przypadku. Chociaż lib klątwy jest ładny (i często go używam sam), to PITA do ponownego uczenia się za każdym razem, gdy nie potrzebuję go od 12 miesięcy, co musi być oznaką złego projektu interfejsu.

Jeśli z jakiegoś powodu nie możesz się dogadać z progress bar lib Joey zasugerował zroluj swój własny i wypuść go na całkiem darmową licencję na natychmiastowe pochwały:)

 4
Author: sparkes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:33:14

W windows przekleństwa działają po wyjęciu z pudełka, ncurses nie, a dla paska postępu przekleństwa powinny być wystarczające. Więc używaj przekleństw zamiast ncurses.

Ponadto, zarówno curses, jak i ncurses są cienkimi waflami wokół biblioteki c - co oznacza, że tak naprawdę nie potrzebujesz samouczków specyficznych dla Ruby.

Jednak na stronie dla kilofa można pobrać wszystkie przykłady kodu do książki. Plik " ex1423.rb " zawiera demo curses, które gra w Ponga - to powinno dać mnóstwo materiałów, które Cię nakręcą.

 2
Author: Michiel de Mare,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-07 17:29:17