Tenho o parent.yml.erb abaixo:
template:
spec:
- image:
env:
- name: env_a
valueFrom:
...
- name: env_b
valueFrom:
...
- name: env_c
valueFrom:
...
- name: env_d
valueFrom:
...
Quero extrair env_b
e env_c
colocar em um arquivo child.yml.erb separado e incorporá-lo em parent.yml.erb e tentei o seguinte.
pai.yml.erb:
template:
spec:
- image:
env:
- name: env_a
valueFrom:
...
<%= ERB.new(File.read('child.yml.erb').gsub(/^/, ' ' * 8)).result(binding) %>
- name: env_d
valueFrom:
...
criança.erb.yml:
- name: env_b
valueFrom:
...
- name: env_c
valueFrom:
...
O resultado após renderizar parent.yml.erb com ERB.new(File.read('parent.yml.erb')).result(binding)
:
- name: env_b
valueFrom:
...
- name: env_c
valueFrom:
...
- name: env_d
valueFrom:
...
env_b
, env_c
e tudo abaixo é renderizado, mas tudo acima <%= ERB.new(File.read('child.yml.erb').gsub(/^/, ' ' * 8)).result(binding) %>
é removido. Há algo errado aqui?
O .gsub(/^/, ' ' * 8)
objetivo é manter o mesmo recuo. Continuo com o mesmo problema mesmo removendo o gsub
.
Quando vários modelos ERB estão sendo criados ao mesmo tempo usando o mesmo parâmetro
binding
, oeoutvar
parâmetro precisa ser passado. Caso contrário, eles começam a sobrescrever a saída um do outro. Pode ser qualquer string (única).Veja a documentação
pai.yml.erb: