Расширение рецептов библиотек шеф-повара (с тестированием)

У меня есть название рецепта шеф-повара my_recipe и я хотел бы добавить к нему библиотеку, чтобы помочь мне сделать кое-что, при этом все еще имея возможность гладко запускать chefspec. Я прочитал документацию по расширению рецепта, но не смог найти, как расширить (или динамически создать) класс в пространстве имен рецепта.

вот фрагмент:

# my_cookbook/recipes/my_recipe.rb
foo = MyRecipe::MyClass.foo


# my_cookbook/libraries/my_class.rb
class Chef
  class Recipe
    class MyRecipe
      unless defined?(Chef::Recipe::MyRecipe::MyClass)
        class MyClass
          def self.foo
            # do stuff
          end
        end
      end
    end
  end
end

что мне не хватает? как шеф-повар переводит название рецепта dsl my_recipe к объекту рецепта (MyRecipe)?

1 ответ

Там нет такого перевода. Я не очень понимаю, откуда у вас вся эта классовая структура. То, что вы хотите, это просто:

module MyHelpers
  def self.foo

А потом MyHelpers.foo в вашем рецепте.

Другие вопросы по тегам