2010-04-23 10 views
10

Si mi Rakefile no encuentra una tarea con un nombre particular, me gustaría rake para crear una nueva tarea con ese nombre de acuerdo con ciertas reglas, si existe un archivo con el nombre de la tarea faltante. Pero si no lo hace, quiero volver a la configuración predeterminada ("No sé cómo crear la tarea 'foo'!").¿Hay un "error de método" para las tareas de rake?

En resumen, ¿hay un method_missing para Rastrillo?

+1

Me encantaría saber cómo hacer esto si eso es posible. Sin embargo, no creo que 'method_missing' sea realmente lo correcto a tener en cuenta. Rake realmente está buscando nombres, no métodos, para las tareas. Sería más apropiado si hubiera algo como un gancho 'task_missing' que pudiera anular, pero una inspección superficial del código no muestra nada de eso. –

Respuesta

11

No lo he intentado, pero una búsqueda rápida reveló this.

Si se define una regla con una cadena vacía, se puede tomar cualquier tarea que no se ha definido en otro lugar. Este facilita la creación dinámica de tareas de rastrillado . Esencialmente, esto es method_missing for rake!

rule "" do |t| 
    t.name 
    # ... do something with the name of the task 
end 
+0

funciona perfectamente para mí – opsb

+0

Esto funciona genial. Excepto que no tengo acceso a nada en la carpeta/lib de una regla. – CarlosCervantes

Cuestiones relacionadas