2011-06-27 15 views
7

Estoy buscando una forma de pasar opciones al motor de plantillas ERB en la acción de plantilla thors.Opciones de paso a la función de plantilla en thor

yo nos topamos con la fuente cli bundler donde se está utilizando la acción plantilla thors así:

opts = {:name => name, 
    :constant_name => constant_name, 
    :constant_array => constant_array, 
    :author_name => author_name, 
    :author_email => author_email 
} 

template(File.join("newgem/Gemfile.tt"), 
      File.join(target, "Gemfile"), 
      opts) 

Pero cuando agrego opciones como este en mis tareas thor no se encuentran por ERB, sólo puedo usar argumentos y funciones en mi clase thor para establecer variables en la plantilla.

No tengo ni idea de cómo funciona el enlace en rubí, tal vez haya una forma de pasar un alcance mediante el enlace a ERB.

+0

¿Qué código probaste en tu archivo Thor que no funcionó? – Dogbert

+0

Copié el código anterior y no capté las opciones aprobadas. – devboy

Respuesta

10

Al usar variables de instancia, debería funcionar.

@name = name 
template("source","target") 

Mi plantilla es el siguiente:

<test><%= @name %></test> 

Esto funciona para mí. No he probado el paso de valores específicos.

11

No puedo encontrar ninguna documentación para responder a esta, pero la lectura a través de la fuente de la Bündler CLI, se observa que si estuviera tratando de hacer referencia al: parámetro author_email dentro de la plantilla,

Author email: <%= config[:author_email] %> 

obras .

+2

Este trabajo para mí también. El hash de 'opts' pasado a' template' se llama 'config' en la plantilla Erb. – Kris

Cuestiones relacionadas