Posted by sorah on 10 Mar 2014 Translated by sorah Ruby 2.1.0 まで、Hash を継承したクラスの reject メソッドはその継承したクラスのオブジェクトを返す挙動になっていました。 しかし、Ruby 2.1.1 で意図せずその挙動が変更され、継承したクラスの場合でも必ず Hash クラスのオブジェクトが返る挙動に変更されてしまっています。 class SubHash < Hash end p Hash.new.reject { }.class #=> 2.1.0: Hash, 2.1.1: Hash p SubHash.new.reject { }.class #=> 2.1.0: SubHash, 2.1.1: Hash (正確にはインスタンス変数など他の属性もコピーされなくなっています。) Ruby 2.1.0 からバージ