2011-02-23 34 views
21

Ortam değişkenlerini kullanmadan adlandırılmış bağımsız değişkenleri Rake görevine iletmenin bir yolu var mı?Adlandırılmış bağımsız değişkenleri Rake görevine nasıl aktarabilirim?

Ben Rake görevleri iki biçimde argümanlar kabul edebilir farkındayım: Bu isim foo ve erişilebilir değeri bar bir ortam değişkeni oluşturur

$ rake my_task foo=bar 

ortam değişkenleri numaralı Rake görevi ENV['foo'] tarafından.

Rake görev bağımsız değişkenleri

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

(tanımlandıkları ise) bu değer ilk iki görev argümanları foo ve bar geçer. my_task olarak tanımlandı ise:

task :my_task, :argument_1, :argument_2 

sonra argument_1 değerine foo olurdu ve argument_2 değerine bar olurdu.

cevap

23

Böyle şeyler söyleyebiliriz: o zaman

rake some_task -- --arg=value 

Ve senin görevin içinde ARGV

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

böylece ARGV açmak için OptionParser (veya başka bir seçenek ayrıştırıcı) de kullanabilir olacak herhangi bir eski CLI betiğinde olduğu gibi; -- görünen komik görüntü, komisyonun'u bir komisyon anahtarı olarak ayrıştırmaya çalışmasını önlemek için gereklidir.

Muhtemelen standart ortam değişkeni yaklaşımıyla daha iyi durumdasınız, tüm -- içerik kadar çirkin değil ve argümanları komisyon görevlerine geçirmenin alışılmış yolu.

İlgili konular