Подтвердить что ты не робот

Rails автозагружает полностью капитализированное имя, например API

У меня есть некоторая структура

  • /lib/dokuwiki.rb
  • /lib/dokuwiki/exception.rb
  • /lib/dokuwiki/api/connection.rb

dokuwiki.rb

require 'dokuwiki/exception.rb'

module Dokuwiki
  ...

DokuWiki/API/connection.rb

module Dokuwiki
  module API
    class Connection
      ...

Теперь, когда я пытаюсь вызвать Dokuwiki::API::Connection.new из контроллера (без каких-либо require), автозагрузка Rails по умолчанию не выполняется. Я считаю, что это потому, что модуль ::API должен иметь папку с именем /a_p_i/ вместо /api/, но это уродливо.

Конечно, я мог бы потребовать "dokuwiki/api/connection.rb" в основном файле "/lib/dokuwiki.rb", но тогда он не перезапустит этот класс автоматически (что вызывает раздражение в контексте dev )

Что я могу сделать, чтобы сохранить красивое имя папки /api/ и выполнить некоторые изменения в реальном времени до /lib/dokuwiki/api/connection.rb без перезагрузки моего сервера?

4b9b3361

Ответ 1

Есть файл с именем config/initializers/inflections.rb.

Добавить в него

ActiveSupport::Inflector.inflections do |inflect|
  inflect.acronym 'API' 
end

и пространство имен API будет доступно в виде каталога с именем api