酒と泪とRubyとRailsと

Ruby on Rails と Objective-C は酒の肴です!

Pryの秘めた力を最大限引き出す4つの拡張機能[Rails]

Railsを開発する上で欠かせない、rails consoleの強化版gem Pryをさらに強化するための拡張機能の紹介です。Pryは単にrails cだけではなく、デバックやドキュメント調査、スタックのチェック、テーブルの中身のチェックなどを強力にサポートしてくれます!


モデルの中身を綺麗に表示

Gem hirbを使うとpry画面でスタックの確認や階層の移動ができるようになります。
(これはPry限定ではなく、irbでもつかえるっぽいです)

hirb rails

使い方

(1) 以下のコマンドを実行してGemをインストール(もしくはgem install)

1
2
3
4
5
group :development, :test do
    # PryでのSQLの結果を綺麗に表示
    gem 'hirb'
    gem 'hirb-unicode'
end

(2) ~/.pryrcに以下を追加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# hirbの設定
begin
  require 'hirb'
rescue LoadError
  # Missing goodies, bummer
end

if defined? Hirb
  # Slightly dirty hack to fully support in-session Hirb.disable/enable toggling
  Hirb::View.instance_eval do
    def enable_output_method
      @output_method = true
      @old_print = Pry.config.print
      Pry.config.print = proc do |output, value|
        Hirb::View.view_or_page_output(value) || @old_print.call(output, value)
      end
    end

    def disable_output_method
      Pry.config.print = @old_print
      @output_method = nil
    end
  end

  Hirb.enable
end

(3) Pry画面内でSQLを内部で発行するActiveRecordのコマンドを実行すると、結果が整形されて表示

cldwalker/hirb · GitHub

デバッグコマンド

Gem pry-debuggerを使うと、pry画面でデバックコマンド使えるようになります。

pry-debugger

使い方

(1) 以下のコマンドを実行してGemをインストール(もしくはgem install)

1
2
3
4
group :development, :test do
    # pry画面でデバックコマンドを実行
    gem 'pry-debugger'
end

(2) ~/.pryrcにコマンドのショートカット(下記)を追加する

1
2
3
4
5
# pry-debuggerのショートカット
Pry.commands.alias_command 'c', 'continue'
Pry.commands.alias_command 's', 'step'
Pry.commands.alias_command 'n', 'next'
Pry.commands.alias_command 'f', 'finish'

(3) ソース内のデバックしたい箇所にbinding.remote_pryを追加。

(4) デバック箇所を含む処理を実行。

(5) コンソールでbundle exec pry-remoteを実行。

コマンド一覧

コマンド(ショートカット) 意味・機能
step(s) 矢印の指している関数の内部に入って1行進める
next(n) 現在の関数内で1行進める
finish(f) 現在の関数から抜ける
continue(c) デバッグから抜けてプログラムを実行する
break 新しいブレークポイントをセットする

Nixme/pry-debugger · GitHub

ドキュメント/ソースコード参照

Gem pry-docを使うとpry画面でドキュメント参照ができるようになります。

Pry-debugger

使い方

(1) 以下のコマンドを実行してGemをインストール(もしくはgem install)

1
2
3
4
group :development, :test do
    # pry画面でのドキュメント/ソース表示
    gem 'pry-doc'
end

(2) Pry画面内でドキュメントの参照時には? hoge、ソースコードの参照時には$ fugaを実行

コマンド一覧

コマンド(ショートカット) 意味・機能
show-doc(?) fuga fugaのドキュメントを表示
show-source($) hoge hogeのソースコードを表示

banister/pry-doc · GitHub

スタックの確認

Gem pry-stack_explorerを使うとpry画面でスタックの確認や階層の移動ができるようになります。

スクリーンショット 2013-01-22 11.51.21

使い方

(1) 以下のコマンドを実行してGemをインストール(もしくはgem install)

1
2
3
4
group :development, :test do
    # pry画面でのstack表示
    gem 'pry-stack_explorer'
end

(2) Pry画面内でshow-stackを実行するとスタックが表示

コマンド一覧

コマンド(ショートカット) 意味・機能
show-stack スタックを表示
up 親のフレームに移動
down calleeフレーム(参照されている側)に移動
frame 詳細フレームに移動

pry/pry-stack_explorer · GitHub

こちらもどうぞ:これでPryをさらに使いこなせる19個のコマンド

Pryのコマンドの紹介は、拙作のPryが真の力を発揮してくれる19個のコマンドとコマンドの自作方法をご参照下さい!

Special Thanks

Rubyのデバッグに役立つ便利なPryの拡張まとめましましブログ | ましましブログ

Happy Elements Labs: Rubyist必携 pry-railsを使いこなせば幸せになれる

ググるよりもまずはpry #Ruby #Rails #pry - Qiita

ハッカソンハウス遊びに来ませんか?

ハッカソンハウス
クリエーターが無料で、自由に開発に集中できるスペース「Hackathon House」を作りました。 『ハッカソンハウス - カレンダー』にOPENしている日時を書いていますので、是非遊びに来てください! (場所はHPのお問い合わせからご連絡ください)

なぜ始めたのか?

僕はアメリカの有名なインキュベーション・オフィスを少しだけ訪問させて頂いたことがあります。あそこはプロダクトの可能性を目一杯引き出してくれる夢のような空間でした。僕はあんな場所を日本にも作りたいとずっと想い続けてきました。この企画を一緒にやっているくりしーさんは、『サウス・バイ・サウスウエスト』を通して、「あのワクワクする空間、熱気溢れるカオスな空間を日本でも創りたい。」というビジョンで一緒にやっています!



押さえておきたい書籍

いかがだったでしょうか?
もし説明がわかりにくかったり、間違っている場所があればぜひ一言!

Comments