Trong một nhiệm vụ cào làm thế nào để truy vấn mô tả? Một cái gì đó sẽ cung cấp cho:Truy cập Rake Tác vụ Mô tả từ bên trong Nhiệm vụ
desc "Populate DB"
task populate: :environment do
puts task.desC# "Populate DB"
end
Trong một nhiệm vụ cào làm thế nào để truy vấn mô tả? Một cái gì đó sẽ cung cấp cho:Truy cập Rake Tác vụ Mô tả từ bên trong Nhiệm vụ
desc "Populate DB"
task populate: :environment do
puts task.desC# "Populate DB"
end
task
phải được xác định làm tham số cho khối nhiệm vụ.
desc "Populate DB"
task :populate do |task|
puts task.comment # "Populate DB"
puts task.full_comment # "Populate DB"
puts task.name # "populate "
end
Edit: giải pháp này làm việc với cào 0.8.7. Ít nhất rake 0.9.2.2 cần thêm Rake::TaskManager.record_task_metadata = true
(Tôi chỉ kiểm tra hai phiên bản này).
Một đứng một mình ruby-script với thích ứng:
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
Lý do: trong rake/task_manager.rb
dòng 30 (cào 0.9.2.2) là một tấm séc
if Rake::TaskManager.record_task_metadata
add_location(task)
task.add_description(get_description(task))
end
Giá trị mặc định false
được đặt trong dòng 305
Có vấn đề tương tự, tôi muốn hiển thị cho người dùng màn hình trợ giúp được tùy chỉnh. Câu trả lời ở đây đã giúp tôi rất nhiều.
Điều rất quan trọng mà
Rake::TaskManager.record_task_metadata = true
được thực hiện trước khi định nghĩa đầu tiên của nhiệm vụ.
Sau đó, bạn có thể làm
Rake.application.tasks.each do |t|
printf("%-}s # %s\n",
t.name_with_args,
t.comment)
end
chi tiết có thể được tìm thấy bằng cách điều tra https://github.com/jimweirich/rake/blob/master/lib/rake/application.rb#L284
'task.comment' dường như được trở về' nil' cho tôi. Ý tưởng nào? –
Ví dụ phù hợp với tôi. Bạn sử dụng phiên bản nào? Tôi có ruby 1.9.2 và 'RAKEVERSION = '0.8.7'' – knut
Tôi cập nhật rake của tôi thành' 0.9.2.2' - bây giờ tôi nhận được' nil' cho 'task.comment' và' task.full_comment'. – knut