README.md には文書化されていないようですが、ライブラリがここで行うカーネルの変更を見ると: https://github.com/michaeldv/awesome_print/blob/master/lib/awesome_print/core_ext/kernel .rb
ap
メソッドに加えて、awesome_print ジェムもすべてのオブジェクトにメソッドを追加することがわかりますai
。
1.9.3p392 :001 > require 'awesome_print'
=> true
1.9.3p392 :002 > test = {a: "b"}
=> {:a=>"b"}
1.9.3p392 :003 > ap test
{
:a => "b"
}
1.9.3p392 :006 > test.ai
=> "{\n :a\e[0;37m => \e[0m\e[0;33m\"b\"\e[0m\n}"
1.9.3p392 :007 > test.ai(html:true)
=> "<pre>{\n <pre>:a</pre><kbd style=\"color:slategray\"> => </kbd><pre><kbd style=\"color:brown\">"b"</kbd></pre>\n}</pre>"
とはいえ、出力の書式設定はそれほど有用ではない可能性があり (html バージョンでは大量の空白が追加され、html 以外のバージョンでは端末の奇妙な色の文字が追加されます)、文書化されていない機能であるため、警告なしにマイナーで壊れる可能性があります。バージョン更新。
kernel.rb
上記で注目に値するもう 1 つの点は、ap
とai
にエイリアスがあることです:awesome_print
とawesome_inspect
.