Ruby - トラブルシュート - ruby26 → ruby27

クラウディア 
1. 概要
2. URI.escape is obsolete
3. Kernel#open is deprecated

1. 概要

 まぁ、ありがちな話です。  「ruby」のバージョンを「2.6」から「2.7」へあげたら、警告が表示されるようになったのです。

2. URI.escape is obsolete

 ひとつは、こんな警告

/パス/ソース名.rb:34: warning: URI.escape is obsolete
 まぁ、古いんですって。  該当の個所は、こんなに書いてあります。

      uri = URI.encode(uri)
 下記のサイトが、参考になりました。
URI.escape obsolete warning on Ruby 2.7+ · Issue #45 · docusign/docusign-ruby-client · GitHub
 すなわち

gem install addressable
 でモジュールをインストールして、ソースの上のほうに下記を記述したうえで

require('addressable')
 該当の個所を

      uri = Addressable::URI.encode(uri)
 と書き換えたら、ワーニングは出なくなりました。

3. Kernel#open is deprecated

 これは

      html = open(uri).read
 と書いてある箇所で、警告が表示されます。

/パス/ソース名.rb:41: warning: calling URI.open via Kernel#open is deprecated, call URI.open directly or use URI#open
 これは
Ruby 2.7で発生する「プロを目指す人のためのRuby入門」との差異について - Qiita
 に解がありました。  すなわち、該当の個所を

      html = URI.open(uri).read
 と記述することで、警告が表示されなくなりました。
earthcar(アースカー)