irb で変数を見るのに便利なメソッド。「 j 」「jj」
json 形式で変数を見れたら、便利なのですが。いつも JSON.dump とか不便だわと思ってたら。。。
json をrequire すると main オブジェクトに #j , #jj というプライベートなメソッドが増えていた。
self.private_methods.grep /^j$/ #=> [] require 'json' self.private_methods.grep /^j$/ #=> [:j]
irb が実行されているmain 空間にロードされていて、当然のことながらmain はKernel。なので、Kernelのプライベートメソッドにロードされている
>> Kernel.private_methods.grep /^[y|j]+$/ => [:j, :jj, :y] >>
main の中だけで使えて、プライベートなのでレシーバーをツケずに使う。
j だけでJSON.dump
puts → p のように 、j だけで出力されるんですね。
>> {a:1} => {:a=>1} >> JSON.dump({a:1}) => "{\"a\":1}" >> j({a:1}) {"a":1} => nil >>
改行を含めて可読性を高める jj
j だけだと物足りないので、jj とかも便利。
>> jj({a:1}) { "a": 1 } => nil
yamlについても同様に
Yaml で出力とかも同様に行けます。
?> y({a:1}) --- :a: 1 => nil
コレは便利だ。なんでいままで知らなかったんだろう。inspect で事足りてるんだろうなぁ。