酒と泪と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

10秒でバイトが見つかるアプリ「Short.Works」作ってます!

iPhoneアプリ Short.Works
短期のアルバイトを10秒で探して、応募ができるiPhone/Androidアプリ『Short.Works』を9月リリース目標に開発しています。

どんなアプリ?

* ソーシャル上の「つながり」を通じて、友達や知り合いにアルバイトが拡がる
* 空いてる時間に「ボタンひとつ」で「すぐ」にアルバイトが見つかる
* スケジュールを登録すると、自分にあったアルバイトがレコメンドされる

一緒にアプリを良くしませんか?

もしアプリに興味を持って頂けるようなら、『メールアドレス contact@short.works』か『Twitter @shortworkus』にメッセージ下さい^^

1) iPhone / Android / Railsアプリ / インフラ構築の開発にご協力頂ける方
2) スマートフォンアプリやWebサイト、HTMLメールのデザインにご協力頂ける方
3) マーケティングや営業にご協力頂ける方
半日〜1日だけとか週末プロジェクトとか、ガッツリやってみたいとか相談のります。 報酬もテンポラリー、レベニューシェア、その他もろもろ何でも相談に乗ります!何でも言ってください。

押さえておきたい書籍

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

Comments