модуль ActiveSupport::Dependencies::Loadable
Публичные методы экземпляров
# File activesupport/lib/active_support/dependencies.rb, line 282
def require_dependency(file_name, message = "No such file to load -- %s.rb")
file_name = file_name.to_path if file_name.respond_to?(:to_path)
unless file_name.is_a?(String)
raise ArgumentError, "the file name must either be a String or implement #to_path -- you passed #{file_name.inspect}"
end
Dependencies.depend_on(file_name, message)
end Предупреждение: Этот метод устарел в :zeitwerk режиме. В :zeitwerk режиме семантика соответствует Ruby, и вам не нужно быть защищенным от порядка загрузки. Просто ссылайтесь на классы и модули обычно. Если имя константы динамическое, преобразуйте его в camelCase, если нужно, и используйте constantize.
В :classic режиме интерпретирует файл, используя mechanism, и помечает определенные константы как автоматически загружаемые. file_name может быть строкой или отвечать на to_path.
В :classic режиме используйте этот метод в коде, которому совершенно необходима определенная константа в этот момент. Типичный случай использования — сделать разрешение имен констант детерминированным для констант с тем же относительным именем в разных именованных пространствах, чьё вычисление в противном случае зависело бы от порядка загрузки.
Движки, которые не контролируют режим, в котором работает их родительское приложение, должны вызывать require_dependency, где это необходимо, в случае, если режим выполнения :classic.
© 2004–2020 David Heinemeier Hansson
Licensed under the MIT License.