2014年7月4日金曜日

5-2 PryをRailsのコンソールとして利用する

 Pryってなんて読むの?プライでいいらしいよ。irbより高機能なREPLですって!こういう表現嫌い。もう忘れてるから。
 REPLは対話型評価環境だって。Read-eval-print loopなんだって。

 インストールするだけならgem install pryでOKらしいけど、rails console上で使うにはpry-railsをインストールする必要がある。似たようなのいっぱいあるね。

pry-railsでPryを組み込む

gem 'pry-rails', group: [:development, :test]
Gemfileにこれを書いてbundle install。group以降は環境設定。
~/work/gem_sample$rails c
Loading development environment (Rails 4.1.1)
[1] pry(main)>
そうすると、あ、ほんとだ。rails cでpryが起動してきた。

Pryを使ってみる

Pry上ではlsでスコープ内の変数やメソッドの一覧が出る。ふーん。
1] pry(main)> ls
Rails::ConsoleMethods#methods: app  controller  helper  new_session  reload!
self.methods: inspect  to_s
locals: _  __  _dir_  _ex_  _file_  _in_  _out_  _pry_
cdで移動すると、場所によりlsのとる対象が変わる。

Pry-railsで追加されるコマンド

recognaize-path
show-middleware
show-model
show-models
show-routes
この辺。
 show-modelは引数にモデルの名前をとります。
[2] pry(main)> show-model Tweet
Tweet
  id: integer
  body: string
  user_id: integer
  created_at: datetime
  updated_at: datetime
  belongs_to :user

Pryでブレークポイントを設定する

ソースコードにbinding.pryを入れると、プログラムが中断されて、その状態のままコンソールが立ち上がる。exitで次の処理へ進む。

Pryでステップ実行を行う

ステップ実行を行うにはbyebugが必要で、Pryとの連携にはpry-byebugというgemを使う。
gem 'pry-byebug', group: [:development, :test]
 プログラムが中断したところでnextかstepと入力すると次の処理に移る。これで一つずつ処理を追って行ける。なんか便利そう。その他の追加コマンドはhelpで確認できる。


0 件のコメント:

コメントを投稿