Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

format記法にhashを渡してキーから文字列を生成する

format記法にhashを渡してキーから文字列を生成する方法があります。

format("%<foo>04b %<bar>05d", {foo:1, bar:2})
#=> "0001 00002"

format("%<foo>#04b %<bar>05d", {foo:1, bar:2})
#=> "0b01 00002"

ネストしたhashを扱うのは相当に難しいです。
あえてやるとすれば

hash = {hoge:{foo: 1, bar:2}}
format("%<foo>#04b %<bar>05d", hash[:hoge])
#=> "0b01 00002"

と言った感じになるのでしょうが、そこまでしてやる位なら#{}記法で変数埋め込んだ方が親切です。

・・・まぁ、これは例の%記法と同じ系統の魔界記法なので、脳からお汁を出したい場合以外は避けるべき記法と思われます。