【发布时间】:2015-12-09 14:31:43
【问题描述】:
我想实现以下目标:
构建一个 Ruby 命令行实用程序,它注册一些 set_trace_func 事件,然后调用您传递给它的任何 ruby 可执行参数(比如rspec)。注册的事件然后转移到调用的命令。
myutility的伪代码:
set_trace_func() # Set some events here
exec(ARGV.join(' ')) # Execute argument passed
然后调用myutility rspec。
我的目标实际上是在任意命令上注册跟踪点(只要它们使用 ruby 垫片)。
我尝试过的事情:
-
exec不起作用,原因很明显(它完全取代了该过程)。 - popen,系统,反引号。这些启动了一个独立的过程。
我可以使用某种形式的 IPC,但前提是可以控制我正在使用我的实用程序调用的命令。不是这种情况;我想接受任意 Ruby 可执行参数。
这可能吗?我没有仔细研究过的一件事是 drb,但这也假设了对外部论点的一些干扰。
【问题讨论】: