Module#autoload?にinheritオプション引数が追加(翻訳)|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社エンジニアの「?」を「!」に。原著者の許諾を得て翻訳・公開いたします。Nativeによるモバイルアプリ開発も手がけています。記事公開時点では日本語APIドキュメント(Module#autoload?に反映されていません。Module#autoload?にinheritオプション引数が追加(翻訳)Module#autoloadこのメソッドは、指定のクラスやモジュールのファイルパスを登録し、初めて実際にアクセスされたときにそのモジュールをlazyに読み込みます。loading"endそれではperson.rbを実行してみましょう。loadedModule#autoload?このメソッドは、モジュールが読み込まれていない場合は登録済みのファイルパスを返し、モジュールが読み込み済みの場合はnilを返します。loading!nil以上の例から、autoload?の最初の呼び出しでは登録済みのファイルパスが返ることがわかります。Profileを呼び出すとProfileモジュールが読み込まれます。2度目のautoload?呼び出しではモジュールが読み込み済みなのでnilが返ります。今度は継承した場合の例を見てみましょう。manager.rb"./profile.rb"Managerクラスでautoload?を呼び出すと、親クラスで定義されているProfileのファイルパスが返ります。autoloadが子クラスで定義されているかどうかを確認する方法がありません。2.7のautoload?にModule#const_defined?と同様のinheritというオプション引数が追加されました。inheritの値はtrue(デフォルト)またはfalseです。manager.rb"./profile.rb"nil1つ目のautoload?呼び出しでは、親クラスにautoloadが定義されているのでファイルパスが返ります。2つ目の呼び出しではinheritオプションがfalseなので先祖クラスの定数がチェックされなくなり、nilが返ります。コボラー、ITコンサル、ローカライズ業界、Rails開発を経てTechRachoの編集・記事作成を担当。チュートリアル第2版の監修および半分程度を翻訳、Railsガイドの初期翻訳ではほぼすべてを翻訳。その後も折に触れて更新翻訳中。enno.jpを運営。実は最近Go言語が好きで、Goで書かれたRubyライクなGoby言語のメンテナーでもある。仕事に関係ないすっとこブログ「あけてくれ」は2000年頃から多少の中断をはさんで継続、現在はnote.muに移転。Storageを使ってはいけない(翻訳)#Tags#会社紹介#自社サービス#勉強会#Rails#PHP#デザイン#実績#週刊RailsウオッチCONTACTお気軽にご相談ください。(翻訳)CONTACTTechRachoでは、パートナーシップをご検討いただける方からのご連絡をお待ちしております。お気軽にご意見・ご相談ください。