Spec-Zone.ru › Ruby on Rails 6.1

модуль ActiveSupport::Dependencies::Loadable

Публичные методы экземпляров

require_dependency(file_name, message = "Нет такого файла для загрузки -- %s.rb") Показать исходный код
# 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API