Ruby 3.2 アドベントカレンダーの5日目の記事です。
無くなったメソッド
Dir.exists? / File.exists?
Ruby 2.1 で Dir.exists?
と File.exists?
は deprecated になった。
Dir.exist?
と File.exist?
を使えと。
Warning[:deprecated] = true Dir.exists?(".") #=> warning: Dir.exists? is deprecated; use Dir.exist? instead File.exists?(".") #=> warning: File.exists? is deprecated; use File.exist? instead
とうとう Ruby 3.2 で無くなった。deprecated になってから無くなるまで長いな。
Dir.exists?(".") #=> undefined method `exists?' for Dir:Class (NoMethodError) File.exists?(".") #=> undefined method `exists?' for File:Class (NoMethodError)
Object#=~
Ruby 2.6 で Object#=~
が deprecated になった。
Warning[:deprecated] = true 123 =~ /./ #=> nil #=> warning: deprecated Object#=~ is called on Integer; it always returns nil
Ruby 3.2 で無くなった。
123 =~ /./ #=> nil #=> undefined method `=~' for 123:Integer (NoMethodError)
まあ String と Regexp にあればいいよね。
[追記] nil (NilClass) にも残されてた。gets =~ /./
みたいなのがエラーにならないで欲しいということっぽい。
Object#taint / Object#untaint / Object#tainted? / Object#trust / Object#untrust / Object#untrusted?
Ruby 2.7 から taint 系のメソッドが deprecated になった。
Warning[:deprecated] = true "hoge".taint #=> warning: Object#taint is deprecated and will be removed in Ruby 3.2 "hoge".untaint #=> warning: Object#untaint is deprecated and will be removed in Ruby 3.2 "hoge".tainted? #=> warning: Object#tainted? is deprecated and will be removed in Ruby 3.2 "hoge".trust #=> warning: Object#trust is deprecated and will be removed in Ruby 3.2 "hoge".untrust #=> warning: Object#untrust is deprecated and will be removed in Ruby 3.2 "hoge".untrusted? #=> warning: Object#untrusted? is deprecated and will be removed in Ruby 3.2
Ruby 3.2 で無くなった。
"hoge".taint #=> undefined method `taint' for "hoge":String (NoMethodError) "hoge".untaint #=> undefined method `untaint' for "hoge":String (NoMethodError) "hoge".tainted? #=> undefined method `tainted?' for "hoge":String (NoMethodError) "hoge".trust #=> undefined method `trust' for "hoge":String (NoMethodError) "hoge".untrust #=> undefined method `untrust' for "hoge":String (NoMethodError) "hoge".untrusted? #=> undefined method `untrusted?' for "hoge":String (NoMethodError)