Pry Outline
- 如果你用
gem install rake
安装了10.1.0版本的rake(假设是最新的),当你直接使用调用rake时,使用的会是这个最新版本的rake。 - 如果项目的Gemfile中指定的版本是0.9.6(或者是Gemfile.lock中是0.9.6)的话,你如果不加bundle exec,将会用rake 10.1.0的版本去执行本来应该由0.9.6版本的rake写出的Rake task。
- 会不会出问题?可能会,可能不会。因为很有可能原作者使用0.9.6版本的rake写的Rake task中没有什么被废弃的部分,10.1.10也能正确执行。但是不兼容的情况也会发生。
bundle exec就是为了解决这样的问题而存在的:在目前的Bundle环境里执行某个操作,这样对于不同的人来说,不论系统里是什么版本的Gem,总是会使用该项目Gemfile中指定的版本来执行某个操作
其他pry plugins
也可以裝一下,包括:
pry-stack_explorer 輸入 show-stack 的話可以看到 call stack
pry-debugger 可以加上 step, next, finish 和 continue 的控制
pry-nav:也因為 binding.pry 太好用。
社群也基於 Pry 繼續做了其他的 pry 的 plugin。最 killling 的就是 pry-nav。pry-nav 做的就是可以讓你在 binding.pry 的攔節點前後,作 next、step。直接一行一行的逐一 debug。相信我,如果你在寫通訊交涉的 Library,或者是正在改複雜的 Rails View
pry-remote
Pry 搭配 Rails,在往常的作法只有 rails s 可以叫出 debug console 而已。但很多人實際上是使用 Pow 作為開發用 HTTP Server。這樣的需求可以用 pry-remote 解決。pry-remote 的作法是把原本的 bindig.pry 改成 binding.remote_pry。而 binding.remote_pry 會開一支 DRb 起來,開發者再用 pry-remote 連到 debug console
sinatra使用Pry
pry -r ./application.rb #sinatra project, require application.rb rails c # rails project
pry 用法
show-method
显示当前对象的源码show-method Author#hi
显示Author#hi方法的源码.pwd
前面的.
是调用shell的命令,而非pry的本身的方法