ActiveSupportを使ってHash#camelize_keysを実装する
はじめに
ActiveSupportにHash#camelize_keysってあってもよさそうなのに、ないのか、、、
— yasaichi (@_yasaichi) 2015, 3月 11
先日RailsでとあるAPIを実装していたときに、Hashの各キーをlowerCamelCaseに変換するメソッドがActiveSupportにないことに気付いたので、実装してみました。
過程
問題を「各キーを何らかのロジックで変換したHashを返す」という視点で見ると、ActiveSupportには似たようなメソッドとしてHash#symbolize_keysなどがあります。
なので、まずはこのコードを参考にすることにしました。
rails/keys.rb at 4-2-stable · rails/rails · GitHub
なるほど。
transform_keysというキーを変換する汎用的なメソッドを用意し、変換ロジックをブロックとして渡すことでHash#symbolize_keysを実装しているわけですね。
完成
Hash#symbolize_keysを参考に、Hash#camelize_keysという名前でHashの各キーをキャメルケースに変換するメソッドを実装しました。
これが以下です。
おわりに
毎回言ってる気がしますが、ActiveSupportを読むの勉強になります。