読者です 読者をやめる 読者になる 読者になる

ActiveSupportを使ってHash#camelize_keysを実装する

はじめに

先日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を読むの勉強になります。