2010-04-23 26 views
10

Nếu Rakefile của tôi không tìm thấy một nhiệm vụ có tên cụ thể, tôi muốn rake để thay vào đó tạo một nhiệm vụ mới theo tên đó theo các quy tắc nhất định, nếu một tệp có tên tác vụ bị thiếu tồn tại. Nhưng nếu không, tôi muốn quay trở lại mặc định ("Không biết làm thế nào để xây dựng nhiệm vụ 'foo'!").Có một "method_missing" cho các tác vụ cào không?

Tóm lại, có một số method_missing cho Rake không?

+1

Tôi rất muốn biết cách thực hiện điều này nếu có thể. Tôi không nghĩ rằng 'method_missing' thực sự là điều đúng đắn để tìm kiếm, mặc dù. Rake thực sự tìm kiếm tên, không phải là phương pháp, cho các nhiệm vụ. Sẽ thích hợp hơn nếu có thứ gì đó giống như móc móc 'task_missing' mà bạn có thể ghi đè, nhưng việc kiểm tra lướt qua mã không hiển thị bất cứ thứ gì như thế. –

Trả lời

11

Tôi chưa thử, nhưng tìm kiếm nhanh tiết lộ this.

Nếu bạn xác định quy tắc có chuỗi rỗng , bạn có thể bắt bất kỳ tác vụ nào mà chưa được xác định ở nơi khác. Điều này giúp bạn dễ dàng tạo các tác vụ cào. Về cơ bản, đây là method_missing cho rake!

rule "" do |t| 
    t.name 
    # ... do something with the name of the task 
end 
+0

hoạt động hoàn hảo cho tôi – opsb

+0

Công trình này tuyệt vời. Ngoại trừ việc tôi không có quyền truy cập vào bất kỳ thứ gì trong thư mục/lib từ một quy tắc. – CarlosCervantes

Các vấn đề liên quan