Я новичок в рубине и шеф-поваре, я хотел знать, есть ли способ создать файл с помощью шаблона? Я попытался найти его, но не мог найти много материала. Попробуйте создать файл черного списка и вставьте в него некоторое регулярное выражение через шеф-повара. Поэтому я хотел добавить атрибуты и использовать template.erb
для создания файла во время работы шеф-повара. Любые подсказки, указатели?
Создать файл с помощью template.erb
Ответ 1
Chef имеет специальный ресурс с именем template для создания файлов из шаблонов. Вам нужно поместить ваш шаблон в кулинарную книгу под каталог шаблонов/по умолчанию, а затем использовать его в своем рецепте, указав переменные.
cookbooks/my_cookbook/templates/default/template.erb:
# template.erb
A is: <%= @a %>
B is: <%= @b %>
C is: <%= @c %>
кулинарные книги /my _cookbook/recipes/default.rb:
template "/tmp/config.conf" do
source "template.erb"
variables( :a => 'Hello', :b => 'World', :c => 'Ololo' )
end
Ответ 2
require 'erb'
class Foo
attr_accessor :a, :b, :c
def template_binding
binding
end
end
new_file = File.open("./result.txt", "w+")
template = File.read("./template.erb")
foo = Foo.new
foo.a = "Hello"
foo.b = "World"
foo.c = "Ololo"
new_file << ERB.new(template).result(foo.template_binding)
new_file.close
Итак a
, b
и c
теперь доступны в качестве переменных в вашем шаблоне
т.е.
# template.erb
A is: <%= @a %>
B is: <%= @b %>
C is: <%= @c %>
Результат = >
# result.txt:
A is Hello
B is World
C is Ololo