我有一个command_line (shell) loop
,等待用户输入字符。根据用户类型的不同,会发生不同的事情,但循环将一直持续下去,直到用户输入"quit"。对于一个命令,我希望打开一个鞋子应用程序。打开工作正常,但当我关闭它时,循环中断,过程结束。我不希望这个过程就此结束。它看起来像这样…
def mainLoop()
loop do
print "Input word: "
word = gets.chomp.split(' ')
if word.length == 0
launchShoesApp(word[0])
end
...
end
end
def create_gui(graph)
Shoes.app { button "Push me" }
end
当鞋子。app GUI关闭,整个进程关闭。我该如何预防呢?
我建议将命令行ruby脚本代码和Shoes脚本代码分开放在不同的文件中例如:
#command-line.rb
def mainLoop()
loop do
print "Input word: "
word = gets.chomp.split(' ')
if word.length == 0
#launchShoesApp(word[0])
Process.spawn("ruby shoes-gui.rb")
# this will spawn up a process (opening your shoes app) without blocking this ruby script.
end
end
end
,
#shoes-gui.rb
require 'green_shoes'
Shoes.app { button "Push me" }
确保两个文件都在同一个文件夹中。同时确保你已经安装了green_shoes gem。如果您对green_shoes不满意,只想使用红色的鞋子,那么您可以更改系统命令
from:
'ruby shoes-gui.rb'
to:
'yourpath/to/shoes shoes-gui.rb'
通常你会在home/username/找到shoes可执行文件。
如果你使用的是linux系统,在C盘的某个地方可以看到shoes/federales/shoes这应该很可能工作(我在我的机器上测试了它)。希望能有所帮助:)