我正在编辑一个文件,我使用irb来测试api:
> require './file.rb' > o = Object.new > o.method
然后我想要能够编辑file.rb,并且可以立即看到更改.示例:假设new_method不存在,当我第一次需要file.rb时:
> o.new_method
哪个会返回一个错误.是否有沙盒/开发者模式或方法,我可以实现上述,而不必每次重新加载文件?要求在第一个要求之后不会工作,不管.我假设最坏的情况我不得不使用负载.
解决方法
我通常会创建一个简单的函数:
def reload load 'myscript.rb' # Load any other necessary files here ... end
因此,简单的重新加载将重新导入我正在处理的所有脚本.这不是自动的,但它是我能够想出的最接近的事情.
当使用不存在的方法调用对象时,您可以覆盖method_missing来自动调用此函数.我从来没有尝试过,所以我不能给出任何具体的建议.如果您调用已经存在但已被修改的方法,那么它也不会有帮助.
在我自己的懒惰中,我已经将我的鼠标上的一个可编程按钮映射到键序列“reload< enter>”.当我使用irb,所有它需要的是一个小指的手指抽搐重新加载所有的东西.因此,当我不使用irb时,我最终会在无意中插入文档中的字符串“reload”(但这完全是一个不同的问题).