ruby arguments rake task named-parameters

ruby - ¿Cómo puedo pasar argumentos con nombre a una tarea de Rake?



arguments task (1)

¿Hay una manera de pasar argumentos con nombre a una tarea de Rake sin usar variables de entorno?

Soy consciente de que las tareas de Rake pueden aceptar argumentos en dos formatos:

Variables de entorno

$ rake my_task foo=bar

Esto crea una variable de entorno con el nombre foo y la bar valores a la que se puede acceder en la tarea Rake my_task por ENV[''foo''] .

Argumentos de la tarea de rake

$ rake my_task[''foo'',''bar'']

Esto pasa los valores foo y bar a los dos primeros argumentos de la tarea (si están definidos). Si my_task se definiera como:

task :my_task, :argument_1, :argument_2

entonces argument_1 tendría el valor foo y argument_2 tendría la bar valores.


Puedes decir cosas como esta:

rake some_task -- --arg=value

Y luego, dentro de tu tarea, será ARGV .

[ ''some_task'', ''--arg=value'' ]

así que podría usar OptionParser (o algún otro analizador de opciones) para descomprimir ARGV como en cualquier secuencia de comandos CLI anterior; el aspecto divertido -- es necesario para evitar que el rastrillo intente analizar --arg=like como un interruptor de rastrillo.

Probablemente esté mejor con el enfoque de la variable de entorno estándar, no es tan feo como todas las cosas y es la forma habitual de pasar argumentos para realizar tareas.