オブジェクトを整形していい感じに表示してくれるpp
rubyで文字列を出力するにはprint, puts, p など色々ありますが、デバッグで特に便利なのがppです。
以下のようなオブジェクトの出力をしてみましょう。
class Hoge def initialize @hoge = 'hoge' @fuga = ['fuga1', 'fuga2', 'fuga3'] @piyo = {:p1=>'piyo1', :p2=>'piyo2'} end end hoge = Hoge.new
pの場合
p hoge
出力結果は
#<Hoge:0x28451c6c @hoge="hoge", @piyo={:p2=>"piyo2", :p1=>"piyo1"}, @fuga=["fuga1", "fuga2", "fuga3"]>
これくらいならまだ良いですが、オブジェクトが大きくなってくると、見づらいですね。
ppの場合
ppは組み込みではないのでrequireが必要です。
require 'pp' pp hoge
出力結果は、
#<Hoge:0x28451c6c @fuga=["fuga1", "fuga2", "fuga3"], @hoge="hoge", @piyo={:p2=>"piyo2", :p1=>"piyo1"}>
改行、インデントしてくれるのでとても見やすいですね。
これは便利!