问题标签 [pry]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
10 回答
74251 浏览

ruby-on-rails - 如何使用 Ruby Pry 跳出循环?

我将 Pry 与我的 Rails 应用程序一起使用。我binding.pry在模型中设置了一个循环来尝试调试问题。例如:

当我输入quit时,它会进入下一次迭代并再次停止。有没有办法跳出循环,所以我不必输入quit100 次?

目前我知道如何摆脱它的唯一方法是使用CTRL+C并重新启动应用程序。

0 投票
1 回答
251 浏览

ruby - 在 Ruby 的控制台上显示时在对象上调用的方法

我愿意在尝试显示一个对象时调用一个方法,但是我没有找到使用哪个方法,例如:

我想知道第一种情况调用哪种方法。

User 不是 ActiveRecord 类,它继承自 Hashie。

谢谢你的帮助!

0 投票
3 回答
1771 浏览

ruby - how to change ruby version in Pry

My command line ruby is 1.9.2 thanks to RVM, yet when I launch pry (which point to a 1.9.2 gem) it uses ruby 1.8.7

Do you know where is the ruby version pry uses specified ?

0 投票
2 回答
943 浏览

ruby-on-rails - 在运行时,如何检查从哪里加载模块或类?

我有一个遗留的 Rails 应用程序,在全局命名空间中有很多有趣的(无用的)模块和类。我想知道他们需要使用哪些文件或宝石rails c

我知道它存在于方法 : .source_location、和调用者对象中__line____file__但确定类或模块的来源似乎无关紧要。

有任何想法吗 ?谢谢!

使用 :

  • 红宝石 1.9.2
  • 导轨 3.1.1
0 投票
1 回答
491 浏览

ruby - 有没有办法在 pry 中获取 Control+R 样式的递归命令历史搜索

我最近一直在玩 pry。很多很棒的东西,但我发现自己Control+R从 irb 中消失了。Pry 有“hist”命令,但我仍然希望能够点击Control+R并开始输入,而不是必须这样做hist --grep foo。我错过了什么吗?

0 投票
5 回答
20411 浏览

ruby - osx bash上的树命令

我正在关注一个名为pry的红宝石宝石上的屏幕投射。在 8:10,使用了 .tree 命令,我认为这是一个 Unix 命令。

它似乎不适用于我的系统:

我已经将问题追溯到这里,其中 pry 引用了一个 shell 命令:

从 bash 的上下文中,我尝试使用命令树但没有运气:

这看起来非常有用,我怎样才能得到这个命令?

0 投票
3 回答
3576 浏览

ruby-on-rails - 带 Pry 的 Rails 控制台

当我进入 rails 控制台时,我已经设置了 pry 来代替 irb 加载。我找不到该页面或不记得如何将其恢复为默认行为,因为它似乎干扰了我的 Rubymine 调试器。有什么建议么?

0 投票
1 回答
538 浏览

ruby - 为什么“block_given”?在调试器中返回 false?(不调试时正常工作)

使用 ruby​​ 调试器block_given 进行测试?给出错误但仍然执行,有人可以解释一下它是如何执行的吗?它与上下文相关(调试器是否更改上下文)?如果是,那么如何找到当前上下文。

现在使用pry 然后block_given而不是ruby ​​-debug?返回true

0 投票
1 回答
200 浏览

ruby - 断点和irb的组合(REPL)

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

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

...

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

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

更新:

所以根据答案:

eval_client=pry-remote

eval_server=binding.remote_pry

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

0 投票
3 回答
3271 浏览

ruby-on-rails - 为什么 Pry 不能在 Heroku 的控制台中运行?

我的目标是使用 Pry 作为我的 Rails 应用程序的控制台,无论是在本地还是在我的登台服务器上。但我无法让它在 Heroku 上工作。

我按照这些说明让 Heroku 使用 Pry 作为我的 Rails 应用程序的控制台。当我运行时heroku run console pry,我的控制台打印Running console pry attached to terminal... up, run.1然后退出。当我运行heroku console pry它只是说main然后退出。

关于我做错了什么的任何想法?

这是我到目前为止所做的:

  1. 在我的Gemfile 中,我添加了以下行:
    gem 'pry'
    gem 'pry-rails'

  2. 我创建了一个名为pry的文件,其中包含:
    #!/usr/bin/env ruby
    require 'pry'
    pry

  3. 我在config/environments中的所有文件中添加了以下内容:
    silence_warnings do
    begin
    require 'pry'
    IRB = Pry
    rescue LoadError
    end
    end

  4. bundle install

  5. git push staging master