REPLとは?
入力されたコードを評価して表示することです。主にRubyでは下記のツールが有名です。
- IRB
- pry
IRBとは?
Ruby標準のREPLです。
pryとは?
IRBと同じようにインタラクティブにRubyを実行するためのツールですが、標準でついておらずGemでインストールする必要があります。IRBの機能に加えて下記のような機能があります。
機能
- コードのカラーリング
- 自動インデント
- コードの保管機能(コードを途中まで入れて途中でTab入力とか、Tab2回押しで候補表示も可能)
pryのインストール
1 |
gem install pry |
Railsへの導入
Railsへpryを導入する場合はGemfileのdevelopmentへ下記の記述を追加します。
1 2 3 4 5 6 7 8 9 |
group :development do # Access an IRB console on exception pages or by using <%= console %> anywhere in the code. gem 'web-console' gem 'listen', '~> 3.0.5' # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring gem 'spring' gem 'spring-watcher-listen', '~> 2.0.0' gem 'pry-byebug' ★追加 end |
Dockerを使っているのであれば下記のコマンドを実行します。これでアタッチ状態(pryによるデバッグが可能な状態)に移行します。
1 |
docker attach [Railsが載っているコンテナ名] |
毎回docker-compose psにてコンテナ名を調べるのは面倒だと思うので、下記の起動方法をすれば楽にアタッチすることが可能です。(内部的な動きとしては、アタッチしてコンテナを起動します。)
1 |
./bin/docker-compose-attach web(Webサーバーのコンテナ名) |
ソースコードに下記のコードを埋め込みます。
1 |
binding.pry |
Railsを実行した際に上記コードに到達したら画面が停止しデバッグできるようになっています。
pryでのデバッグ状態を終了させるには?
下記のいずれかのコマンドを実行します。
- exit
- continue
アタッチ状態(pryによるデバッグが可能な状態)を抜けるには?
下記のショートカットを実行します。
- Ctrl + p + q
pryの種類
Railsで使えるpryには下記のように3種類あります。
- pry
- pry-rails
- pry-byebug
pry
通常のpryです。binding.pryで普通にデバックが可能です。
pry-rails
railsコンソール内でpryを使うことが可能です。pryに依存しているので、pry-railsをインストールすると必ず通常のpryもインストールされます。なので、これを使う場合は冗長になるのでGemfileにgem 'pry'等と記述しないようにしましょう。
pry-byebug
これを使えばpryで止めた箇所からステップ実行ができるようになります。
この記事へのコメントはありません。