Neden bir takma adı gerekiyor? Herhangi bir kod olmadan yeni bir görev tanıtabilirsiniz, ancak orijinal görevinin bir önkoşuluyla.
namespace :db do
task :table do
puts "table"
end
#kind of alias
task :t => :table
end
Bu parametreler ile kombine edilebilir:
require 'rake'
desc 'My original task'
task :original_task, [:par1, :par2] do |t, args|
puts "#{t}: #{args.inspect}"
end
#Alias task.
#Parameters are send to prerequisites, if the keys are identic.
task :alias_task, [:par1, :par2] => :original_task
Eğer
arg_names
parametreleri okuyabilirsiniz parametreler adlarını aramak için kaçınmak için:
#You can get the parameters of the original
task :alias_task2, *Rake.application[:original_task].arg_names, :needs => :original_task
bir define_alias_task
bunu birleştirin - yöntemi:
def define_alias_task(alias_task, original)
desc "Alias #{original}"
task alias_task, *Rake.application[original].arg_names, :needs => original
end
define_alias_task(:alias_task3, :original_task)
Ruby 1.9.1 ve rake-0.8.7 ile test edilmiştir.
Hmmm, sanırım, birkaç saat önce neredeyse aynı solution RyanTM already posted.
Bu yöntemi biliyorum, ancak parametreyi geçemiyor. – coolesting
Yapabileceğinden eminim. Biraz bekleyin, bir örnek hazırlayacağım. – knut
Örneğimi ekledim - ve zaten gönderilmiş olan cevap olduğunu tespit ettim. Ama belki de benim açıklamam anlamaya yardımcı olur (dürüst olmak gerekirse, ben aynı cevabı verene kadar Ryans cevabını anlamamıştım;) – knut