はじめに
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を使っている場合は移行先を考えるか自作することを検討するといいかもしれませんね。