それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

rubyのirb(pry)で変数をjson/yamlで見るのに便利な短縮メソッド jj/j/y

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

f:id:takuya_1st:20150707005152p:plain

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 で事足りてるんだろうなぁ。

f:id:takuya_1st:20150707005156p:plain