Hashのキーをリネームする
Hashのキーをリネームしたかったけどデフォルトのメソッドはないようなので書いた class Hash def rename_key(old:, new:) return unless has_key?(old) return if has_key?(new) self[new] = self.delete(old) self end end 使い方 h = {a: 1, b: 2} { :a => 1, :b => 2 } [92] pry(main)> h.rename_key(old: :a, new: :c) { :b => 2, :c => 1 } 変更前のキーが存在しない時と、変更後のキーが存在する時は何もしない。 実際の入れ替え処理はself[new] = self.delete(old)だけで終わってます。 参考 http://kmckelvin.com/blog/2014/06/renaming-items-in-a-ruby-hash