Можно ли использовать настраиваемый ресурс из какой-либо кулинарной книги для создания настраиваемого ресурса в своей собственной кулинарной книге?

У меня есть кулинарная книга, скажем, название моей кулинарной книги check и я пытаюсь создать собственный ресурс, располагая файл в следующей структуре каталогов: check/resources/myresource.rb. В этомmyresource.rb файл, мне нужно использовать настраиваемый ресурс из другой кулинарной книги line. Как использовать ресурс изline поваренная книга в myresource.rb?

2 ответа

Решение

Исходя из того, что уже упомянул @Draco, два описанных им шага являются обязательными. В дополнение к этому, включение поваренной книги должно быть выполнено при вызове пользовательского ресурса в своем рецепте.

# check/resources/myresource.rb

resource_name :myresource
property :cookbook_inclusion, String
property :some_name, String, name_property: true

action :some_action do
  include_recipe new_resource.cookbook_inclusion
  line_resource [...] do
    [...]
  end
end

Затем, вызывая его в рецепте, вы можете упомянуть название поваренной книги, которую хотите включить.

# check/recipes/default.rb

myresource 'include' do
  cookbook_inclusion 'line'
end

Таким образом, при конвергенции все ресурсы будут доступны для операций.

Вы можете сделать это точно так же, как если бы вы хотели использовать это в своем рецепте.

  1. Зависит от кулинарной книги, в которой определен другой настраиваемый ресурс:
# metadata.rb

depends 'line', '~> X.Y' # add this line, replacing X and Y with line cookbook version
  1. Используйте настраиваемый ресурс. Вы можете использовать его в рецепте или в своем пользовательском ресурсе везде, где вы обычно можете использовать ресурсы. (Я использовалline_resource например, настоящее имя различается в зависимости от того, в каком файле находится line поваренная книга была объявлена.)
# check/resources/myresource.rb

action :some_action do
  line_resource [...] do
    [...]
  end
end
Другие вопросы по тегам