断点和irb的组合(REPL)

时间:2012-01-06 19:41:35

标签: ruby debugging irb read-eval-print-loop pry

有时候我想尝试使用IRB和一些对象,但是重现我需要的状态和上下文可能并不容易。考虑您想要在RSPec中使用表达式的语法。所以我想实现这样的东西:

  1. 我正在开发的ruby应用程序的代码内部调用函数eval_server
  2. 它创建服务器套接字并侦听连接
  3. 我启动了一些类似于IRB的工具(我们称之为eval_client - 应该实现它)
  4. 它创建客户端套接字并连接到eval_server
  5. 我在eval_client
  6. 中输入了一些ruby表达式
  7. eval_client将其发送至eval_server
  8. eval_server在调用它的对象的上下文中计算表达式,序列化结果或异常(例如,使用.inspect),并将其发送回eval_client
  9. eval_client显示结果
  10. ...

    问题是:如果已经实施了类似的工具?如果没有,是否有一些宝石可以帮助我实现它?

    我知道它可能看起来像调试器。但我宁愿不用调试器启动rails服务器。我只想在代码中添加一个,并在下一个请求时在该行的上下文中使用IRB。

    更新

    所以根据答案:

    eval_client = pry-remote

    eval_server = binding.remote_pry

    https://github.com/mon-ouie/pry-remote

1 个答案:

答案 0 :(得分:1)

名为pry-remote的Pry插件可以执行此操作:

请参阅:https://github.com/pry/pry/wiki/Remote-sessions