2013-03-29 15 views
11

Mevcut görevi çalıştırmadan önce bir kod görevi çalıştırmak için bir Rake görevini değiştirmek için ileriye doğru bir yol var mı? Geliştirmek için eşdeğer bir şey arıyorum, bu görev başında değil, başlangıçta çalışır.Görev kancasından önce tırnağı

Rake::Task['lame'].enhance(['i_run_afterwards_ha_ha']) 
+0

T o görev 'topal' olarak adlandırılmalı, 'not_so_lame' olarak adlandırılamaz ve sadece' kodlama 'işlemine başlamadan önce bazı kodlar çalıştırılmalı mı? Rake :: Task ["lame"] .gönderiyor – Kris

+0

Cevabınızdaki bir şeyi anlamamalı mıyım? Ne diyorsun ki, "topal olarak adlandırılmalı, buna" not_so_lame "denilemez mi? – bigtunacan

cevap

23

Bunu geride kalan Rake görevin bağımlılığını kullanın ve Rake varolan görevi yeniden tanımlamak olanak gerçeği olabilir. Sonuç olarak

Rakefile

task :your_task do 
    puts 'your_task' 
end 
task :before do 
    puts "before" 
end 
task :your_task => :before 

$ rake your_task 
before 
your_task 
+0

Yukarıdaki sözdizimini denedim ve bu benim için çalışmadı. Ve geliştirmenin, bir görevden önce ya da sonra bir şeyleri çalıştıracak şekilde kurulabileceğini düşündüm. Bununla da şansım yoktu. Var olan görev içine daha fazla kazma özel davranışıma önek koymak istedim ve zaten bir bağımlılık olarak ayarlandığını fark ettim: visable_task =>: daha sonra davranışımı öncelemeye çalıştığımda gizli: visable_task =>: my_deps bu sonunda koşuyor. Bunun yerine bağımlılığımı şöyle ayarlayabilirim: undercover =>: my_deps beklediğim gibi çalıştı. – bigtunacan

+1

Cevabınızı kesinlikle haklı olarak kabul ediyorum; ve bir dahaki sefere biraz daha kazmaya çalışacağım! Teşekkürler! – bigtunacan

+0

rica ederim. ve Thx! – toch

6

Yoksa önce ve kancalar sonra yapmak tırmık-kanca mücevher kullanabilirsiniz:

https://github.com/guillermo/rake-hooks

namespace :greetings do 
    task :hola do puts "Hola!" end ; 
    task :bonjour do puts "Bonjour!" end ; 
    task :gday do puts "G'day!" end ; 
end 

before "greetings:hola", "greetings:bonjour", "greetings:gday" do 
    puts "Hello!" 
end 

rake greetings:hola # => "Hello! Hola!" 
İlgili konular