使用ruby接管控制台输出

时间:2011-08-10 13:43:24

标签: ruby command-line

当我从控制台运行vim或top时,他们可以接管渲染整个控制台。当我退出时,我会回到控制台。

有可能从红宝石那里做到这一点吗?举个简单的例子,我将如何做以下

# Rakefile
task :clock do
  loop do
    console.render Time.now
    sleep 1
  end
end

当我运行它时,控制台将被清除,第一行将显示时间。当我退出时,我会继续执行控制台会话,就像我运行rake clock之前一样。


更新

检查了tictactoe example ruby​​ curses这里是时钟示例的实现。我已经在随机线上显示时钟,以演示整个控制台的刷新。

#!/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

1 个答案:

答案 0 :(得分:5)

您正在寻找可让您完全控制屏幕的Ruby curses库:定位,颜色和c。

这不是一个很好的文档库,但Stackoverflow搜索“[ruby] curses”将为您提供示例链接。