【Ruby 3.0 Advent Calendar 2020】Dataクラスが廃止された【23日目】
はじめに
Ruby 3.0 Advent Calendar 2020 23日目の記事になります。
昨日は、【Ruby 3.0 Advent Calendar 2020】Ruby 3.0 で WEBrick と SDBM が標準ライブラリから削除される【22日目】です。
今日は、Ruby3.0でC拡張などで使われていたDataクラスが削除されたことを紹介します。
Dataクラスって?
DataクラスはObjectクラスからnewやallocateをundefしたクラスで、C拡張を書く際にnewなどが定義されていると困るケースがあったので使用されていました。
そのためRubyを普通に書く上では特に意識することはありません。
廃止されたことによる影響
基本的にRubyのコードレベルでは大きな影響はありません。 あるとすれば、C拡張を使っているgemなどを作っている人は対応が必要になると思います。
とはいえ、こちらのコミットのようにrb_cObjectを使うように変更すればよさそうなので大きな問題はないかと思います
あと、大きな問題になりそうなケースとしては古くからメンテナンスされていないC拡張のgemなどは3.0から動かなくなると思います。 なので、かなり古いC拡張のgemを使っている場合は移行先を考えるか自作することを検討するといいかもしれませんね。