pryをMySQLのクライアントのようにテーブル表示する

Ruby
pryはいざというとき、便利だなと思う@HIROCASTERでございませう。

hirb-unicodeを使って、pry操作中のActiveRecordの結果をSQLの結果っぽく表示します。

通常は以下の様な表示になります。

before_hirb

ちょっと、よく見ないとわかりづらいですよね。

それが hirb-unicode によって、

after_hirb_table

この様にテーブル表示してくれます。件数が多くあると、通常通りの表示に比べて、とても見やすくなります。

また、文字が多くターミナルの横幅が足らなければ、自動的に

after_hirb

この様に表示します。MySQLを利用している人にはおなじみの表示です。

スポンサーリンク

導入方法

pryやpry-raisを導入していることを前提とします。

Gemfileに

gem 'hirb-unicode'

と、記述して、

$ bundle install

などをしてgemをインストールします。

次に .pryrc ファイルを作成します。

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

以上で、導入は終了です。

$ script/rails c

などで、表示が変化しているはずです。

参考

タイトルとURLをコピーしました