觉得有点意思,就从5 Pry Features Every Ruby Developer Should Know 搬运过来了。
大部分时候,我们都把 Pry 作为一个断点工具来对 Ruby 代码进行调试。但它不仅仅是一个断点工具,他同时也能给我们带来极好的代码交互。接下来我们从两个层面来说说来说说 5 个你需要知道 pry 技巧。
Pry 提供了一个 ls
方法,让我们可以获取当前 scope 里所有可用的变量和方法,如果觉得出现的内容太多了,是因为他会从多个层级得到对应的方法和变量。
于是我们可以ls --locals
这样就可以只获得当前 scope 的变量和方法。
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 代码。一会就去试一下吧!