今回はRuboCop1.23からOpenStructの使用を監視するCopが追加されたことについて簡単にまとめたいと思います。Ruby3.0でOpenStructの使用が非推奨になったため、RuboCopがその方針に則った形になります。この記事の内容OpenStructとはRuby3.0で警告対象になったRuboCop1.23での対応まとめ参考OpenStructとはOpenStructとは、要素を動的に追加・削除ができるクラスです。要素を動的に追加・削除できる手軽な構造体を提供するクラスです。この挙動によって要素を動的に変更できる構造体として働きます。OpenStruct使用例としては以下のようになります。以下のように構造体を作成し、その構造体に要素を追加していきます。25ここで試しにuserを出力させてみると、以下のようなオブジェクトが生成されていることが分かります。先ほど追加した要素がオブジェクト内に格納されていますね。age=25>追加した要素はメソッドチェーンすることでアクセスできます。25初期化時にはハッシュを渡すこともできます。20Ruby3.0で警告対象になったOpenStructにはパフォーマンス面、バージョンの脆弱性、潜在的なセキュリティ問題を秘めていることから、Ruby3.0からOpenStructの使用は警告対象になりました。ちなみにですが、Ruby3.0ドキュメント(OpenStruct)の最後にはOpenStructを使用しないでくださいと強く書かれています。CaveatsRuboCop1.23での対応RuboCop1.23は2021/11/15にリリースされました。2021/11/15にリリースされたRuboCop1.23では、OpenStructの使用を監視するCopが追加されました。OpenStructを使用しているプロジェクトでは、以下のように修正対応する必要があります。receive(:a).and_return('b')すぐの修正対応が困難の場合は、一旦disableするでも良いと思います。#10206今回はRuboCop1.23からOpenStructの使用を監視するCopが追加されたことについて簡単にまとめました。OpenStructを使用している箇所があれば見直してみてください。yoshi19941117TechTechMedia【Rails】エラーハンドリングに役立つぼっち演算子(.&)とtry(t...【Rails】DBへの負荷を抑えながら、カラム情報を複数取得できるplu...Railsエンジニアちばよしはる銀座にあるヘルステック企業のRailsエンジニア。初心者から中級者向けに記事を更新しています。お酒とカレーと競馬が好き。TechTechMedia。