Ruby:在现有的Ruby进程中运行脚本

时间:2011-10-12 01:43:59

标签: ruby

如何在文本编辑器中使用常规Ruby脚本(并保存到FS中的文件中)

然后使用现有对象在已经运行的Ruby进程中对其进行评估?

我应该能够运行我的脚本,可以访问现有Ruby进程的ObjectSpace,然后在ruby进程继续运行时终止我的脚本,编辑我的脚本,并在同一个Ruby进程中重新运行它,一次又一次。

是否有一个共同的计算机科学术语指的是这个?

3 个答案:

答案 0 :(得分:2)

您必须更具体地了解触发脚本重新运行的内容。然而,它将归结为调用eval(IO.read("scriptname.rb"))或类似的东西。

答案 1 :(得分:1)

REPL是计算机科学术语,指的是你正在寻找的东西

请参阅http://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop

答案 2 :(得分:0)

您可以使用GDB调试包括ruby进程在内的任何进程,这将使您能够执行任何C函数,并且当我们尝试从字符串中执行ruby代码时,可以使用rb_eval_string_protect函数来执行任何ruby您想要的代码。

我从这篇文章中得到了这个解决方案 https://spin.atomicobject.com/2013/08/19/debug-ruby-processes/ 作者以将标准输出重定向到文件为例描述了该方法,但是您可以将其用于任何其他目的。