Ruby 3.2 アドベントカレンダーの4日目の記事です。
無くなったクラスや定数
Fixnum / Bignum
Ruby 2.4 から Fixnum と Bignum は deprecated になって Integer の別名になった。
Warning[:deprecated] = true Fixnum #=> Integer #=> warning: constant ::Fixnum is deprecated Bignum #=> Integer #=> warning: constant ::Bignum is deprecated
Ruby 3.2 でとうとう無くなった。
Fixnum #=> uninitialized constant Fixnum (NameError) Bignum #=> uninitialized constant Bignum (NameError)
無くなるまで長かったな…。
Random::DEFAULT
Ruby 2.7 までは Random::DEFAULT
はデフォルトの乱数生成器(?よくわかってない)の Random オブジェクトを返していたんだけど、スレッドセーフじゃないとかで Ruby 3.0 で Random::DEFAULT
は deprecated になって Random を返すようになった。
Warning[:deprecated] = true Random::DEFAULT #=> Random #=> warning: constant Random::DEFAULT is deprecated
Ruby 3.2 で無くなった。
Random::DEFAULT #=> uninitialized constant Random::DEFAULT (NameError)
Struct::Group / Struct::Passwd
require 'etc'
すると何故か Struct::Group
と Struct::Passwd
が作られてたんだけど、実体は Etc::Group
と Etc::Passwd
だった。
Ruby 3.0 からは deprecated になってた。
Warning[:deprecated] = true require 'etc' Struct::Group #=> Etc::Group #=> warning: constant Struct::Group is deprecated Struct::Passwd #=> Etc::Passwd #=> warning: constant Struct::Passwd is deprecated
Ruby 3.2 で無くなった。
require 'etc' Struct::Group #=> Etc::Group #=> uninitialized constant Struct::Group (NameError) Struct::Passwd #=> Etc::Passwd #=> uninitialized constant Struct::Passwd (NameError)
ていうかなんで Struct
配下に存在してたんだろ。