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