Когда я запускаю vim или top из консоли, они могут взять на себя рендеринг всей консоли. Когда я выхожу, я снова возвращаюсь к консоли.
Можно ли сделать это из Ruby? В качестве простого примера, как бы я сделал следующее
# Rakefile
task :clock do
loop do
console.render Time.now
sleep 1
end
end
, когда я запустил бы это, консоль будет очищена, и первая строка покажет время. Когда я выхожу, я продолжаю сеанс консоли, как это было до запуска rake clock.
Проверив пример tictactoe на предмет рубиновых проклятий, вот реализация примера часов. Я показал часы на случайных строках, чтобы продемонстрировать обновление всей консоли.
#!/usr/bin/env ruby
require 'curses'
loop do
Curses.clear
Curses.setpos(rand * 10, 0)
Curses.addstr(Time.now.to_s);
Curses.refresh
sleep 1
end