はじめに
RubyMine 2016.3から、ローカルで動いているRubyプロセスにアタッチしてデバッグ実行できる機能が追加されました。
RubyMine 2016.3 Release Candidate: Attach to Local Process with Debugger | RubyMine Blog
これにより、PowやPuma-devで動いているRailsアプリに対してもRubyMineからアタッチしてデバッグ実行することができます。
この記事ではそのデバッグ実行の手順を説明します。
PowやPuma-devって何?
rails server
でRailsを起動しなくても、http://your-app-name.dev
みたいなURLでRailsアプリを実行できる便利ツールです。
- Pow: Zero-configuration Rack server for Mac OS X
- puma/puma-dev: A tool to manage rack apps in development with puma
ちなみに今回はPowを使いましたが、Rails 5のActionCableを使うようなアプリではPuma-devを使うのがいいみたいです。
Puma-devでは試していませんが、おそらく同じような手順でデバッグ実行できるんじゃないかと思います。
Puma-devでも同じように使えることを確認しました!(2016.12.12追記)
百聞は一見にしかず:動画で確認する
こんな感じでデバッグ実行できます!
Powで動いているRailsアプリにRubyMine 2016.3からアタッチしてデバッグ実行する動画を撮ってみた。https://t.co/D1EgVN3tPy pic.twitter.com/yVKb1K1YES
— Junichi Ito (伊藤淳一) (@jnchito) November 21, 2016
デバッグ実行の手順
デバッグ実行の手順は以下のとおりです。
- Powで動くRailsアプリを起動する(Powのプロセスを立ち上げる)
- RubyMine上でデバッグしたいコードにブレークポイントを付ける
- Run > Attach to Local Process でPowのプロセスを選択する
- デバッガが起動するので、プログレスバーが動いている間にRailsアプリを操作してブレークポイントを付けたコードを実行する
- プログレスバーが最後まで到達してしまうと、エラーが出てアタッチできない場合があります。
- ブレークポイントで止まったら(うまくアタッチできたら)、普段通りRubyMineでデバッグ実行する
- 1回で止まらない場合、画面をリロードするなどして何度か目的のコードを動かすようにしてみてください。
最初はアタッチするまでのクセをつかむのに時間がかかるかもしれませんが、コツをつかめば簡単です!
まとめ
これまではPowやPuma-devで実行中のRailsアプリをRubyMineでデバッグするのはちょっと面倒でしたが、これで思い立ったときにすぐデバッグ実行できそうです。
RubyMineは有料ではあるものの、かなりハイペースで魅力的なバージョンアップを繰り返してくれるので、お布施のしがいがある開発ツールだと思っています。
まだ使っていない人は30日間の無料トライアルもできるので、ぜひ試してみてください!
Ruby on Rails IDE :: JetBrains RubyMine
あわせて読みたい
RubyMineについて詳しく知りたい方はこちらのアドベントカレンダーをどうぞ。