2016-03-27 12 views
2

devamçıkın bu ana Rake görevi olan sonraki

namespace :crawler do 

    task main: :environment do 
    Rake::Task['tester:first'].execute 
    Rake::Task['tester:second'].execute 
    Rake::Task['tester:third'].execute 
    end 

    end 
Her görev Değilse bir değer mevcut olması denetler kod parçası çalışır

sonra görevden çıkın ve bir sonraki ile devam edin. aşağıdaki ama Çık kısmını ulaştığında o

def check(value) 
if !value.nil? 
    return value 
else 
    exit 
end 
end 

çalışmıyor Aslında koddur, tüm program çıkar ve diğer görevleri yürütür alamadım.

+3

10 Şimdiki komisyon görevinden bir sonraki komisyon görevine geçebilirsiniz. Çıkış, yalnızca komutun değil, tüm komut dosyasını sonlandıracaktır. Onu çıkaramaz mısın? – tpbowden

+0

yazdınız "mevcut bir değerin varlığını kontrol edin, eğer görevden çıkmıyorsa, ancak" check "metodunda, eğer mevcut değeri (nil değil) – emery

+0

http://stackoverflow.com/questions/2316475/how-do-i-return-early-from-a-rake-task – emery

cevap

1

Kontrol yönteminiz sıfırlanırsa, bir sonraki göreve atlamak için Rake görevinizin içinden "ileri" yi kullanmayı deneyin.

Varsa değeri döndürmek için "check" işlevinin içinde bir koşul kullanabilir veya değer sıfır ise sıfır olarak döndürebilirsiniz. Daha sonra, eğer nil geri dönerse, bir sonraki göreve geçmek için bir sonraki (çıkma) kullanabilirsiniz.

task :main do 
    Rake::Task['first'].execute(value: 'Hello, Rake world!') 
    Rake::Task['second'].execute 
end 

task :first do |_t, args| 
    value = args[:value] 
    next if check(value).nil? 
    puts 'the value is: ' + value 
end 

task :second do 
    puts 'the second task' 
end 

def check(value) 
    if value.nil? 
    return nil 
    else 
    return value 
    end 
end 

İşlev tanımının içinde "sonraki" ifadesinin kullanılması çalışmaz.

+1

Teşekkürler, çözümünüzü uyguladım ve iyi çalışıyor! Bu tarafa gideceğim! – Jack

+0

kontrol yönteminde if/else/end komutunu yazmanın bir başka yolu üçlüyü kullanmaktır: "return value.nil?? Nil: value" – emery

İlgili konular