Ruby возвращает неинициализированную постоянную ошибку при попытке включить модуль в рецепт шеф-повара. - PullRequest
0 голосов
/ 09 октября 2018

У меня есть рецепт java/recipes/windows, который использует метод с именем win_friendly_path, и он не работает, потому что win_friendly_path еще не определено.

win_friendly_path, однако, определено в ../windows/libraries/windows_helper.rbследующим образом:

module Windows
  module Helper
def win_friendly_path(path)
      path.gsub(::File::SEPARATOR, ::File::ALT_SEPARATOR || '\\') if path
    end

У меня уже есть настройки berksfile и metadata.rb в рецепте java (./), которые зависят от поваренной книги windows.

Я не уверенкак включить этот модуль, так что сейчас я пытаюсь просто использовать include WindowsHelper в рецепте java/cookbook/windows и получаю эту ошибку:

uninitialized constant #<Class:#<Chef::Recipe:0x00000000029a2188>>::WindowsHelper

Я пробовал несколько вариантов этогои теперь я чувствую, что потратил слишком много времени на устранение неполадок, поэтому любая помощь приветствуется.

ОБНОВЛЕНИЕ: подключение этой строки ::Chef::Resource.send(:include, Windows::Helper) к моему java/recipes/windows рецепту дает мне следующую ошибку:

Chef::Exceptions::ValidationFailed
       ----------------------------------
       value is a required property

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Вставка следующей строки решила эту проблему для меня:

::Chef::Recipe.send(:include, Windows::Helper)

Это позволяет мне использовать следующий модуль переменных из поваренной книги Windows:

module Windows
  module Helper
...
{Variable}
  {Other_variable}
...
0 голосов
/ 09 октября 2018

Попробуйте это

include Windows::Helper
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...