Ruby存在(实验性)类浏览器吗?
我在谈论类似于大多数Smalltalk实现的类浏览器/编辑器组合(即专注于[runtime]类/对象而不是.rb文件)

PS:看起来pry已经能够做很多smalltalk样式类浏览器所需要的东西了吗?https://speakerdeck.com/u/rahult/p/pry-an-irb-alternative-on-steroids
PS2:看起来Seaside Smalltalk框架有一个基于Web浏览器的类浏览器
PS3:MagLev/Webtools是我发现的最接近的:

PS4:显然http://tibleiz.net/code-browser/index.html有Ruby支持,能够提供类似于类的浏览器:

为什么我得到这个撬错误?
[36] pry(main)> s = "pry"
Error: Cannot find local context. Did you use `binding.pry`?
Run Code Online (Sandbox Code Playgroud)
它在这个截屏视频中工作得很好http://pryrepl.org/
通常,当测试失败时,我花了很长时间试图找出导致测试失败的原因.如果RSpec在测试失败时启动Ruby调试器会很有用,这样我就可以立即检查局部变量以深入了解原因.
我正在使用的解决方案现在看起来像这样:
# withing some test
debugger unless some_variable.nil?
expect(some_variable).to be_nil
Run Code Online (Sandbox Code Playgroud)
但是,这种方法很麻烦,因为我首先等待测试失败,然后添加调试器行,修复问题然后必须删除调试器行,而我希望它的工作更像是gdb哪个有能力启动时如果遇到异常,则无需使用debugger语句来编写代码库.
编辑:我试过普利茅斯.它对我来说还不够可靠.此外,开发历史似乎表明它不是一个非常受支持的宝石,所以我宁愿不依赖它.
更新:我试过去pry-rescue发现它很整洁.但是,我经常使用宙斯,并且想知道是否有办法让它适用pry-rescue.
我已经看到一些SO帖子解释了如何使用pry进入rspec测试并且能够做到这一点.一旦我到达断点,我就很难显示任何有用的信息.对于下面的代码,我想从pry控制台检查响应对象:
describe 'happenings' do
context "#index (GET /api/v1/flat_happenings.json)" do
before(:each) do
30.times { FactoryGirl.create(:flat_happening) }
get "/api/v1/flat_happenings.json"
end
describe "should list all flat_happenings" do
binding.pry
it { JSON.parse(response.body)["flat_happenings"].length.should eq 30 }
end
end
end
Run Code Online (Sandbox Code Playgroud)
关于如何做到这一点的任何想法?
在我的R3应用中,Pry非常棒.但任何我可以使用的机会
<% binding.pry %>
Run Code Online (Sandbox Code Playgroud)
在一个视图或部分像我以前一样
<% debugger %>
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用.谢谢.
我在ruby上有点被宠坏了,我习惯使用pry应用程序的惊人设施.我将一个应用程序锁定为1个线程,然后让pry在httpd控制台中弹出,然后能够解决很多问题的底部,但是我没有发现任何类似于PHP的可用内容.是否有类似或接受的解决方案,这样的PHP用于在执行期间调试和跟踪数据结构等?
我在OSX上使用ruby 2.0.0-p195.pry-debugger不起作用(步骤/继续/下一步似乎都起作用continue).是否有与ruby 2.0一起使用的pry调试gem?
更新:pry-debugger而且pry-byebug似乎都与红宝石2.0.0-P195在一个简单的项目工作.我有一些其他冲突导致两者binding.pry在测试中使用时失败...
更新:pry-byebug正在使用最新的ruby 2.0版本2.0.0-p247,使用pry-byebug 1.1.1和byebug 1.5.0
我把binding.pry脚本放进去
但现在当它停在断点处时,
向我展示了这些信息.
哪个超出我的预期,如何解决?
帧数:0/11
From: /Users/me/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/pry-nav-0.2.4/lib/pry-nav/tracer.rb @ line 21 PryNav::Tracer#run:
12: def run(&block)
13: # For performance, disable any tracers while in the console.
14: # Unfortunately doesn't work in 1.9.2 because of
15: # http://redmine.ruby-lang.org/issues/3921. Works fine in 1.8.7 and 1.9.3.
16: stop unless RUBY_VERSION == '1.9.2'
17:
18: return_value = nil
19: command = catch(:breakout_nav) do # Coordinates with PryNav::Commands
20: return_value = yield
=> 21: {} # Nothing thrown == no navigational command
22: …Run Code Online (Sandbox Code Playgroud) 我正在尝试调试多线程ruby脚本,问题出在我做的时候
binding.pry
Run Code Online (Sandbox Code Playgroud)
其他线程继续将输出发送到控制台.如何让它们在binding.pry停止然后在我退出时再次启动?我想在.pryrc中有一种方法可以做到这一点
当我在Rails中使用Byebug设置断点时,我有时希望它完成执行,但github上的指南说要使用exit它也退出Pry.continue如果断点处于循环中,重复键入可能会很烦人.
无论如何在不退出Rails控制台的情况下停止byebug?