एक रेक कार्य के भीतर कोई विवरण कैसे पूछता है? कुछ ऐसा जो देना होगा:कार्य के भीतर से रेक रेक विवरण का विवरण
desc "Populate DB"
task populate: :environment do
puts task.desC# "Populate DB"
end
एक रेक कार्य के भीतर कोई विवरण कैसे पूछता है? कुछ ऐसा जो देना होगा:कार्य के भीतर से रेक रेक विवरण का विवरण
desc "Populate DB"
task populate: :environment do
puts task.desC# "Populate DB"
end
task
कार्य-ब्लॉक के लिए एक पैरामीटर के रूप में परिभाषित किया जाना चाहिए।
desc "Populate DB"
task :populate do |task|
puts task.comment # "Populate DB"
puts task.full_comment # "Populate DB"
puts task.name # "populate "
end
संपादित करें: यह समाधान रेक 0.8.7 के साथ काम करता है। कम से कम रेक 0.9.2.2 को अतिरिक्त Rake::TaskManager.record_task_metadata = true
की आवश्यकता है (मैंने केवल इन दो संस्करणों की जांच की है)।
gem 'rake' #'= 0.9.2.2'
require 'rake'
#Needed for rake/gem '= 0.9.2.2'
Rake::TaskManager.record_task_metadata = true
desc "Populate DB"
task :populate do |task|
p task.comment # "Populate DB"
p task.full_comment # "Populate DB"
p task.name # "populate "
end
if $0 == __FILE__
Rake.application['populate'].invoke() #all tasks
end
कारण::
एक रूपांतरण के साथ अकेले माणिक स्क्रिप्ट खड़े rake/task_manager.rb
लाइन 30 (रेक 0.9.2.2) में एक चेक
if Rake::TaskManager.record_task_metadata
add_location(task)
task.add_description(get_description(task))
end
डिफ़ॉल्ट false
लाइन 305 में सेट किया गया है
इसी तरह की समस्या होने के कारण, मैं उपयोगकर्ता को एक अनुकूलित सहायता स्क्रीन दिखाना चाहता था। यहां जवाब ने मुझे बहुत मदद की।
यह बहुत महत्वपूर्ण है कि
Rake::TaskManager.record_task_metadata = true
कार्यों की पहली परिभाषा से पहले किया जाता है।
तो फिर तुम
Rake.application.tasks.each do |t|
printf("%-}s # %s\n",
t.name_with_args,
t.comment)
end
विवरण क्या कर सकते हैं https://github.com/jimweirich/rake/blob/master/lib/rake/application.rb#L284
'' task.comment' nil' मेरे लिए लौट रहा प्रतीत होता है की जांच कर रही द्वारा पाया जा सकता है। कोई विचार? –
उदाहरण मेरे लिए ठीक काम करता है। आप किस संस्करण का उपयोग करते हैं? मेरे पास रूबी 1.9.2 और 'RAKEVERSION =' 0.8.7'' – knut
मैंने अपने रेक को '0.9.2.2' में अपडेट किया है - अब मुझे' task.comment' और 'task.full_comment' के लिए' nil' मिलता है। – knut