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.