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

chrishyman · May 26, 2017 · Last by dylin replied at May 27, 2017 · 3679 hits

觉得有点意思,就从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 代码。一会就去试一下吧!

Reply to ruchee

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

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

You need to Sign in before reply, if you don't have an account, please Sign up first.