2011-02-27 14 views
5

La situación¿Cómo se transfieren los argumentos a una tarea de rake en RubyMine 3.0?

tengo una tarea rake similar a

desc "A rake Task" 
task :give_me_gold, [:quantity,:quality] => :environment do |task, args| 
.... 
end 

Soy consciente de la línea de comandos que escriba

rake give_me_gold[10,24] 

para pasar parámetros a la tarea rastrillo. Sin embargo, cuando RubyMine ejecuta la tarea se ejecuta de esta manera:

rake give_me_gold[quantity,quality] --trace 10,24 

Pasos para reproducir

  1. crear una tarea rake que toma argumentos.
  2. Tienes RubyMine instalada la versión 3.0
  3. De RubyMine, haga clic en Herramientas -> Ejecutar Rastrillo Tarea
  4. Introduzca su nombre de la tarea rake. Debería aparecer como "tarea [opción, opción]" y presionar enter
  5. Aparecerá un cuadro de diálogo y se solicitarán argumentos. Rellene y presione enter
  6. Observe el comando que RubyMine ejecuta.

Volver a mi pregunta

¿Cómo pasar argumentos a una tarea rake en RubyMine 3.0?

Gracias por tomarse el tiempo para ver esta pregunta

Respuesta

1
task :give_me_gold do 
    quantity = ENV['quantity'] 
    quality = ENV['quality'] 
    puts "quantity: #{quantity}, quality: #{quality}" 
end 

rake give_me_gold quantity=10 quality=24 
#=> quantity: 10, quality: 24 

UPD

task :give_me_gold, :quantity, :quality do |t, args| 
    puts "Args were: #{args}" 
    quantity = args['quantity'] 
    quality = args['quality'] 
    puts "quantity: #{quantity}, quality: #{quality}" 
end 

rake give_me_gold[10,24] 
#=> quantity: 10, quality: 24 
+2

la práctica estándar para el paso de argumentos para rastrillar tarea como siempre ha sido, como se ilustra en mi pregunta. Pasar argumentos a la tarea de rake como variables de entorno parece contrario al estándar. – FelixD

+0

actualizado. puedes probar otro enfoque :). – fl00r

+0

En realidad, no tengo RubyMine, así que estoy fuera de tema :( – fl00r

0

El buen enfoque para pasar entradas junto con el medio ambiente es:

** tarea: de carga, [: ruta] => [: medio ambiente] hacer | t, args |

puts args 
YOUR_MODEL.method(args) 

final **

Cuestiones relacionadas