使用ruby接管控制台输出

ops*_*psb 7 ruby command-line

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

是否有可能从红宝石这样做?举个简单的例子,我该如何做

# Rakefile
task :clock do
  loop do
    console.render Time.now
    sleep 1
  end
end
Run Code Online (Sandbox Code Playgroud)

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


更新

检查了ruby curses 的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
Run Code Online (Sandbox Code Playgroud)

Way*_*rad 5

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

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