trabajos - ¿Cuál es el nuevo formato para tareas de rake?(tarea: t, arg,: necesidades=>[deps] versus tarea: t,[args]=>[deps])
presentacion de un trabajo de investigacion ejemplos (2)
Estoy usando Rails 3.1 beta con Ruby 1.9.2 y rake 0.9.2, y tengo un montón de tareas de rake que he escrito. Aquí hay un ejemplo:
namespace :data do
desc "dump the nodes and edges for a graph"
task :dump_graph, :species_id, :needs => :environment do |t,args|
args.with_defaults(:species_id => ''Hs'')
# ...
end
end
Sin embargo, cuando la aplicación Rails carga estas tareas de rake, ahora recibo la siguiente advertencia una vez por cada tarea de rake:
at /home/user/railsapp/lib/tasks/data/dump_graph.rake:3:in `block in <top (required)>''
WARNING: ''task :t, arg, :needs => [deps]'' is deprecated. Please use ''task :t, [args] => [deps]'' instead.
He experimentado con la reorganización de los argumentos de varias maneras diferentes, pero no tengo claro exactamente cómo debería ser mi tarea ahora.
¿Rake espera que le dé las dependencias individuales? ¿Cómo defino esto en una tarea de rake si la dep es el entorno de rieles?
¡Un enlace a la documentación actualizada sería una respuesta aceptable! He buscado en Google y en Google, pero sin suerte.
(Y sí, me doy cuenta de que el formato aparece en el mensaje de error. Pero ese formato no parece ser correcto, según las variaciones que he probado).
El uso que me funciona es:
task :task_name, [:argument] => :environment
Supongo que si tuviera varias dependencias para enumerar, deps necesitaría la notación de matriz.
No tengo idea de por qué un solo argumento requiere la notación de matriz: ejecutar la tarea rake con --trace genera un error sobre el símbolo: argumento que no responde al vacío. método.
Sé que a veces es difícil de descifrar, pero el mensaje de error le da el nuevo formato:
task :t, [args] => [deps]
Así que para su ejemplo:
task :dump_graph, :species_id => :environment
http://www.postal-code.com/binarycode/2011/06/02/rake-needs-deprecated/