u16suzuの blog

日々学んだことのメモブログです。

ruby gem のpry についてのメモ

Rails Casts で pry というgem を知りました。irbの高性能版で、railsの開発に便利な機能が沢山ついています。

EPISODE #280 Pry with Rails
http://railscasts.com/episodes/280-pry-with-rails?autoplay=true
http://pry.github.com/

インストール

gem install pry pry-doc

準備rails プロジェクトを作成

$ rails new blog
$ cd blog
$ rails g scaffold article name:string body:text
$ rake db:migrate

/Users/u16suzu/workRails/blog/app/models/article.rbに以下を追加

def word_count
end

プロジェクトディレクトリ内でpryを起動する。

$ cd blog
$ pry -r ./config/environment

使ってみる

pry(main)> 1+2 #irbみたいに使える。
=> 3
pry(main)>

pryのコマンド

help pry のヘルプを表示
nesting ネスト情報を表示
exit カレントバインディングをpopする
cd 現在のスコープを変更する 
ls カレントスコープのメソッドと変数を表示
ls -h ls のオプションを表示する
ls -M instance method を表示する
ls -m methd を表示する
show-doc メソッドのドキュメントを表示
show-method カレントスコープのメソッドを表示
edit-method 指定したメソッドの編集

使用例

#〜は説明文です。

macbook:blog user$ pry -r ./config/environment
pry(main)> ls
_ _dir_ _ex_ _file_ _in_ _out_ _pry_ version
pry(main)> cd Article #Article スコープに入る
pry(Article):1> self #Article#selfを実行
=> Article(id: integer, name: string, body: text, created_at: datetime, updated_at: datetime)
pry(Article):1> first
=> #


pry(Article):1> cd first #Articleの一番目のスコープに入る
pry(#
):2> self
=> #

pry(#
):2> ls -m #Articleのメソッド一覧を表示
__binding_impl__ word_count
pry(#
):2> show-method word_count #メソッドのソースコードを表示

From: /Users/u16suzu/workRails/blog/app/models/article.rb @ line 2:
Number of lines: 3

def word_count
binding.pry
end

シェルコマンド

.をつけると、shellコマンドを実行してくれる

.ls
.cat

インスタンスメソッド一覧(継承したメソッドは含まない)

```
$ Array.public_instance_methods(false)
```

ソースコード表示

```
[62] pry(main)> show-source Array#place
```