💎
Ruby 3.2 - 無くなったメソッド
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)
Discussion