46
46

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Railsでのpryコマンド利用設定&実行例

Last updated at Posted at 2012-05-30

2012/05/30 pry-railsを使うよう編集

pry: http://pry.github.com/
pry-rails: https://github.com/rweng/pry-rails

インストール

gem install pry pry-doc pry-rails
pry-docはコアメソッド(Cで実装されているものなど)の情報を見るのに必要.

Railsで利用する

Gemfile
group :development do
  gem 'pry'
  gem 'pry-doc'
  gem 'pry-rails'
end

以上をGemfileに書き,bundleを実行すればrails cでpryが実行されるようになる.

実行例

以下のようにクラスやオブジェクトを渡り歩いて色々操作できる.

pry-sample.log
$ rails c
[1] pry(main)> cd Item # Itemクラスに移動する
[2] pry(Item):1> self # self: Itemクラス
=> Item(id: integer, user_id: integer, created_at: datetime, updated_at: datetime, ...)
[3] pry(Item):1> first # Item.first
=> #<Item id: 1, user_id: 1, created_at: "2011-11-04 14:32:09", updated_at: "2011-11-04 14:32:09",  ...>
[4] pry(Item):2> cd first # Item.firstに移動する
[5] pry(#<Item>):3> self # Item.first
=> #<Item id: 1, user_id: 1, created_at: "2011-11-04 14:32:09", updated_at: "2011-11-04 14:32:09", ... >
[6] pry(#<Item>):3> user
=> #<User id: 1, url_name: "yaotti", ...>
[7] pry(#<Item>):3> nesting # 移動した跡を見る
Nesting status:
--
0. main (Pry top level)
1. Item
2. #<Item>
[8] pry(#<Item>):3> .ls # shellのコマンドを実行するときは先頭に.を付ける
Capfile         Guardfile       Rakefile        config          doc             public ...
[9] pry(#<Item>):3> ^D # ctrl-dやexitを実行すると,1つ前のスコープに戻る
[10] pry(Item):2>

ランタイムにpry実行

ソースコード内にbinding.pryを仕込むと,実行時にその行のスコープでpryが実行される.

その他

show-methodやedit-methodコマンドなども便利.詳しくは https://github.com/pry/pry/wiki を参照.
http://qiita.com/items/2b36068cdf2e40e75c2d もまとまっている

46
46
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
46
46

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?