Soy bastante nuevo para ruby y chef, quería saber si hay una manera de crear un archivo usando una plantilla. Traté de buscarlo pero no pude encontrar muchas cosas. Intento crear un archivo de lista negra e insertar algunas expresiones regulares en él a través del chef. Así que quería agregar los atributos y usar un template.erb
para crear el archivo mientras ejecuto el chef. Alguna indirecta, punteros?Crear archivo usando template.erb
11
A
Respuesta
21
chef tiene recurso especial llamado template, para crear archivos de plantillas. Debe colocar su plantilla dentro del libro de recetas debajo de las plantillas/directorio predeterminado y luego usarlo en su receta, proporcionando las variables.
libros de cocina/my_cookbook/templates/default/template.erb:
# template.erb
A is: <%= @a %>
B is: <%= @b %>
C is: <%= @c %>
libros de cocina/my_cookbook/recetas/default.rb:
template "/tmp/config.conf" do
source "template.erb"
variables(:a => 'Hello', :b => 'World', :c => 'Ololo')
end
3
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
Así a
, b
c
y ahora dotados como variables en su plantilla
POR EJEMPLO
# template.erb
A is: <%= @a %>
B is: <%= @b %>
C is: <%= @c %>
Resultado =>
# result.txt:
A is Hello
B is World
C is Ololo
Cuestiones relacionadas
- 1. Crear archivo vacío usando python
- 2. usando OpenSSL para crear el archivo .pfx
- 3. Crear un nuevo archivo txt usando VB.NET
- 4. ¿Cómo crear un archivo .ipa usando Xcode?
- 5. Android: Crear archivo usando el método createNewFile()
- 6. Crear archivo UTF-8 usando HttpServletResponse
- 7. Cómo crear un archivo usando Makefile
- 8. Crear un archivo de jerarquía usando perl
- 9. Crear archivo de video usando PHP
- 10. Crear un archivo RDF usando un archivo txt como entrada
- 11. Crear nombre de archivo usando fecha y hora
- 12. Crear archivo de texto y rellenarlo usando bash
- 13. Cómo crear un archivo .jar usando la terminal
- 14. ¿Cómo crear treeview desde un archivo XML usando WPF?
- 15. Cómo crear un archivo usando javascript en Mozilla Firefox
- 16. ¿Cómo puedo crear un archivo zip usando Objective C?
- 17. Crear tablas en un archivo de MS Word usando Java
- 18. Crear archivo CSV usando PHP y guardarlo en el directorio
- 19. ¿Cómo puedo crear un archivo PST de Outlook usando .Net?
- 20. ¿Cómo crear un menú contextual usando un archivo XML?
- 21. ¿Cómo crear un archivo tar completamente comprimido usando Python?
- 22. Cómo crear un archivo de bordado .dst usando Java
- 23. Cómo crear y escribir en un archivo txt usando VBA
- 24. crear y modificar el archivo xml usando javascript
- 25. usando "touch" para crear directorios?
- 26. ¿Cómo crear el archivo .mbtiles?
- 27. Crear directorio usando Nant
- 28. Crear API usando CakePHP
- 29. Crear .ics archivo dinámicamente
- 30. Crear archivo DMG
oh, es bueno saber :) nunca ha usado Chef – fl00r
Gracias Draco. :) Esto es exactamente lo que estaba buscando. – noMAD
@Draco: Tengo una pregunta. Entonces, aquí, necesito crear el archivo en la receta, ¿verdad? Quiero decir, el código fl00r había escrito, ¿debería ir en la receta? – noMAD