आपको उपनाम की आवश्यकता क्यों है? आप बिना किसी कोड के एक नया कार्य पेश कर सकते हैं, लेकिन मूल कार्य के लिए एक पूर्व शर्त के साथ।
namespace :db do
task :table do
puts "table"
end
#kind of alias
task :t => :table
end
इस पैरामीटर के साथ संयुक्त किया जा सकता है:
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
पैरामीटर नाम के लिए खोज करने के लिए आप arg_names
साथ मापदंडों पढ़ सकते हैं से बचने के लिए:
#You can get the parameters of the original
task :alias_task2, *Rake.application[:original_task].arg_names, :needs => :original_task
एक define_alias_task
करने के लिए इसे कम्बाइन - विधि:
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)
रूबी 1.9.1 और रेक-0.8.7 के साथ परीक्षण किया गया।
हमम, ठीक है, मुझे लगता है कि कुछ घंटे पहले ठीक उसी तरह solution RyanTM already posted है।
मुझे यह विधि पता है, लेकिन यह पैरामीटर पास नहीं कर सकता है। – coolesting
मुझे पूरा यकीन है कि यह कर सकता है। कुछ मिनट रुको, मैं एक उदाहरण तैयार करूंगा। – knut
मैंने अपना उदाहरण जोड़ा - और पाया कि यह पहले ही पोस्ट किया गया उत्तर है। लेकिन शायद मेरी व्याख्या समझने में मदद करती है (ईमानदार होने के लिए, मैंने तब तक जवाब नहीं दिया जब तक कि मैंने वही जवाब नहीं दिया;) – knut