WEBサービス創造記

WEBサービスを作ったり保守したりしてる人のメモブログです。

irbの代わりにpryを利用する

      2015/06/13

pryとは

irbのような対話型のコンソール(REPL)で、以下のような特徴がある。

  • デフォルトで式を評価したときに結果が色付けされたりシンタックスがハイライトされたりするので可読性が高い
  • shellコマンドを実行できる
  • ソースコードの確認ができる(C言語レベルまで可能)

なお、pryは英単語では”覗く”という意味合いがある。

インストール

gemとしてインストールできる。

gem install pry pry-doc

※pry-docはC言語のコードを覗くときに必要

pryの使い方

pryの起動

$ pry

終了するときは”exit”コマンドを実行する。

Railsのコンソールとして利用する場合は、アプリケーションのルートディレクトリで以下を実行。

$ pry -r ./config/environment

組み込みコマンド

pryにはいくつかの組み込みコマンドが用意されている。pryがサポートしている組み込みコマンドの一覧を見るにはpryコンソール上でhelpコマンドを実行する。

pry> help

ソースコードの確認

show-methodという組み込みコマンドでソースコードを確認することができる。

[1] pry(main)> show-method String#to_s

From: string.c in Ruby Core (C Method):
Number of lines: 8
Owner: String
Visibility: public

static VALUE
rb_str_to_s(VALUE str)
{
    if (rb_obj_class(str) != rb_cString) {
    return str_duplicate(rb_cString, str);
    }
    return str;
}

以下のようにcdコマンドを利用してStringオブジェクトの中に入り込んでから実行することもできる。

[2] pry(main)> cd String
[3] pry(String):1> show-method to_s

edit-methodコマンドでは、エディタでソースコードを編集することができる。

edit-methodでファイルを開くときのエディタは、Pry.config.editorで指定することができる。例えばvimを使いたい場合は下記のようにする。

Pry.config.editor="vim"

毎回指定するのが面倒な場合は、~/.pryrcというファイルに記述しておく。

シェルコマンドの実行

.をプレフィックスとして付加するとシェルコマンドを実行することができる。

[1] pry(main)> .ls
Capfile  Gemfile  Gemfile.lock  README  Rakefile  app  config  config.ru  db  doc  features  first_read.txt  lib  log  public  script  spec  tags  test  tmp  vendor

 - Ruby on Rails , , ,