awesome_printはREPL(IrbとかPry)においてRubyオブジェクトを見やすくするgemです。
有名どこはpやppがありますね。
導入法
$ gem install awesome_print
実際のところ
まずは、pの表示を見てましょう。
p [ false, 42, %w(forty two), { :now => Time.now, :class => Time.now.class, :distance => 42e42 } ] [false, 42, ["forty", "two"], {:now=>2015-01-30 23:38:07 +0900, :class=>Time, :distance=>4.2e+43}]
そして、お馴染みpp。さっきよりはだいぶマシになりました。
pp [ false, 42, %w(forty two), { :now => Time.now, :class => Time.now.class, :distance => 42e42 } ] [false, 42, ["forty", "two"], {:now=>2015-01-30 23:37:50 +0900, :class=>Time, :distance=>4.2e+43}]
…さて、awesome_printだとどうなるのでしょうか?
コマンドはAwesome_Printでapです。
ap [ false, 42, %w(forty two), { :now => Time.now, :class => Time.now.class, :distance => 42e42 } ] [ [0] false, [1] 42, [2] [ [0] "forty", [1] "two" ], [3] { :now => 2015-01-30 23:37:59 +0900, :class => Time < Object, :distance => 4.2e+43 } ]
デフォルトなのに、ネスト数やらクラス構造*1まで出てますね…??
…実際コンソールに出る文字はこちら
色ついてるやん(驚愕
…と、このようにawesome_printは表示をトンデモナイ水準に引き上げます。
*1:ちなみに、表示されるのは一個上の親クラスまでです。