Rails 每个 Ruby 开发者都需要知道的 5 个 Pry 技巧

chrishyman · 2017年05月26日 · 最后由 dylin 回复于 2017年05月27日 · 3748 次阅读

觉得有点意思,就从5 Pry Features Every Ruby Developer Should Know 搬运过来了。

大部分时候,我们都把 Pry 作为一个断点工具来对 Ruby 代码进行调试。但它不仅仅是一个断点工具,他同时也能给我们带来极好的代码交互。接下来我们从两个层面来说说来说说 5 个你需要知道 pry 技巧。

  1. 探索可用方法

Pry 提供了一个 ls 方法,让我们可以获取当前 scope 里所有可用的变量和方法,如果觉得出现的内容太多了,是因为他会从多个层级得到对应的方法和变量。

于是我们可以ls --locals 这样就可以只获得当前 scope 的变量和方法。

  1. 丢掉文档

Pry 让命名空间下的搜索变得极其容易,例如我们要找一个 Nokogiri 处理 xpaths 的函数,我们只需: find-method xpath Nokogiri,结果如下:

> find-method xpath Nokogiri
Nokogiri::CSS.xpath_for
Nokogiri::CSS::Node
Nokogiri::CSS::Node#to_xpath
Nokogiri::CSS::Parser
....

如果我们需要下列函数具体的信息,我们只需 stat Nokogiri::CSS.xpath_for

> stat Nokogiri::CSS.xpath_for
Method Information:
--
Name: xpath_for
Alias: None.
Owner: #<Class:Nokogiri::CSS>
Visibility: public
Type: Bound
Arity: -2
Method Signature: xpath_for(selector, options=?)
Source Location: /.rvm/gems/ruby-2.3.3/gems/nokogiri-1.7.0.1/lib/nokogiri/css.rb:22

所有内容一览无余,但还不够,我们还能 show-source Nokogiri::CSS.xpath_for

> show-source Nokogiri::CSS.xpath_for
From: /.rvm/gems/ruby-2.3.3/gems/nokogiri-1.7.0.1/lib/nokogiri/css.rb:22

Owner: #<Class:Nokogiri::CSS>
Visibility: public
Number of lines: 3

def xpath_for selector, options={}
  Parser.new(options[:ns] || {}).xpath_for selector, options
end

如果你还是要看文档,Pry 连 show-doc 也提供了。

这些技巧能更好地让我们每日的开发中得到更多的信息,更好地 Debug 代码。一会就去试一下吧!

ruchee 回复

厉害了! ……但好像?不好使

输入 help 就能看到那些 gem 支持的方法了

需要 登录 后方可回复, 如果你还没有账号请 注册新账号