Consoleでモデルの出力を整形するGem 'Hirb'

こんにちは!kossyです!




本日気になったニュースはこちら
headlines.yahoo.co.jp

解雇規制の緩和が行われるまでは、共存の状態が続くのではないでしょうか。
もっとも、その領域に口を出す政治家が現れるかはわかりませんが、、、









さて、今回はRailsのREPL環境であるpry上で、モデルの出力を整形して
表示してくれるGem'Hirb'の導入方法について、
ブログに残してみたいと思います。




環境
Rails 5.1.6
Ruby 2.5.1
MacOS Mojave





gemの導入

hirbとhirb-unicodeというgemを導入します。

Gemfile

group :development do
  gem 'hirb'
  gem 'hirb-unicode'
end

irbを使用する場合はこのままでも使えるのですが、
pryを導入している場合はこのままでは使えないので、
.pryrcというファイルをアプリケーションファイル直下に作成します。





.pryrcの作成

.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 |*args|
        Hirb::View.view_or_page_output(args[1]) || @old_print.call(*args)
      end
    end

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

  Hirb.enable
end

これでconsole上でモデルの出力を整形できます。
こんな感じで出力されます。

f:id:kossy-web-engineer:20181202122210p:plain