Перевести на консоль вывод с помощью ruby ​​

Когда я запускаю 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

7
задан opsb 10 August 2011 в 16:56
поделиться