कार्य को दूसरी बार निष्पादित करने के लिए आप invoke
और reenable
का उपयोग कर सकते हैं।
आपका उदाहरण कॉल करें रेक ब्लॉग: पोस्ट शीर्षक
में पैरामीटर है। इस पैरामीटर को invoke
में पैरामीटर के रूप में उपयोग किया जा सकता है:
उदाहरण:
require 'rake'
task 'mytask', :title do |tsk, args|
p "called #{tsk} (#{args[:title]})"
end
Rake.application['mytask'].invoke('one')
Rake.application['mytask'].reenable
Rake.application['mytask'].invoke('two')
कृपया mytask
को ब्लॉग: पोस्ट
के साथ प्रतिस्थापित करें और इसके बजाय कार्य परिभाषा जिसे आप की आवश्यकता
अपने रेकैकाइल कर सकते हैं।
यह समाधान परिणाम को stdout पर लिख देगा - लेकिन आपने उल्लेख नहीं किया है, कि आप आउटपुट को दबाना चाहते हैं।
दिलचस्प प्रयोग:
आप कार्य परिभाषा के अंदर भी reenable
को कॉल कर सकते हैं। यह एक कार्य को खुद को पुन: सक्षम करने की अनुमति देता है।
उदाहरण:
require 'rake'
task 'mytask', :title do |tsk, args|
p "called #{tsk} (#{args[:title]})"
tsk.reenable #<-- HERE
end
Rake.application['mytask'].invoke('one')
Rake.application['mytask'].invoke('two')
नतीजा (रेक 10.4.2 के साथ परीक्षण):
"called mytask (one)"
"called mytask (two)"