タグ

ブックマーク / diary.sorah.jp (1)

  • Ruby 2.1.1 で Hash#reject のデグレ

    Ruby 2.1.0 まで、Hash を継承したクラスの reject メソッドの挙動は継承クラスのオブジェクトを返す挙動をしてました。 しかし、 Ruby 2.1.1 で意図せずその挙動が変更され、必ず Hash クラスのオブジェクトが返されるようになりました。 class SubHash < Hash; end p SubHash.new.reject{}.class #=> 2.1.0: SubHash 2.1.1: Hash p Hash.new.reject{}.class #=> 2.1.0: Hash 2.1.1: Hash (厳密には ivar 等その他の属性もコピーされなくなっています。 また、Ruby 2.1 からはバージョニングポリシーの変更により、2.0.0 までのパッチリリースにあたるリリース時で TEENY が増えます。詳細は今月の WEB+DB で!) この挙

  • 1