activesupport4.1.2のHash#deep_transform_keysとか

nested Arrayにも適用されるようになったとか。地味に便利かも

require "active_support/core_ext/hash/keys"

ahash = {
   :nested_array =>
      [
         { :a => 1, :c => 2},
         { :b => 3 }
      ]
}

transformed = ahash.deep_transform_keys { |key|
   (key.to_s + "_old").to_sym
}

p transformed

~ ➤ ruby -e "gem 'activesupport', '=4.1.1'; load 'a.rb'"
{:nested_array_old=>[{:a=>1, :c=>2}, {:b=>3}]}
~ ➤ ruby -e "gem 'activesupport', '=4.1.2'; load 'a.rb'"
{:nested_array_old=>[{:a_old=>1, :c_old=>2}, {:b_old=>3}]}

コード見る限りオフにはできないのかな。