2012-06-24 28 views
5

Mục tiêu của tôi là xây dựng một bảo vệ tùy chỉnh đơn giản với Guard. Cài đặt gem và cài đặt bundler cho ứng dụng của tôi đã ổn. My Guardfile chứa:Làm thế nào để xây dựng một ví dụ bảo vệ rất cơ bản?

notification :growl 

guard 'eyeball' do 
    watch %r{^app/(.*)} 
    watch %r{^config/(.*)} 
    watch %r{^lib/(.*)} 
end 

Ok, tiếp theo, tôi cần báo cho Guard biết phải làm gì khi trận đấu xảy ra. Nhưng tôi không biết phải làm thế đâu. (Trong trường hợp này, tôi muốn xem đơn đăng ký của mình để thay đổi và chạy một số mã tùy ý. Giả sử rằng không có guard available for what I want. Tôi muốn tìm hiểu cách tự làm.)

Thực sự là 'sai lầm và xem những gì lỗi bật lên phong cách tiếp theo', khi tôi chạy guard tôi nhận được thông báo lỗi này:

 
ERROR: Could not load 'guard/eyeball' or find class Guard::Eyeball 
ERROR: cannot load such file -- guard/eyeball 
ERROR: Invalid Guardfile, original error is: 
undefined method `new' for nil:NilClass 
ERROR: No guards found in Guardfile, please add at least one. 
Guard uses Growl to send notifications. 
Guard is now watching at '/Users/my-user-name/dev/my-project-name' 

Vì vậy, điều đó mang lại cho tôi một gợi ý rằng tôi cần phải tạo một file guard/eyeball.rb. Có lẽ? Nhưng làm thế nào tôi có thể biết điều này từ tài liệu?

Tôi đã đọc (nhiều lần) rất chi tiết và hữu ích Guard README nhưng không tìm thấy ví dụ đơn giản nào cho thấy ai đó cách 'làm những điều cơ bản' khi viết bảo vệ của riêng bạn. Thật bất ngờ, RailsCasts cũng không thực sự trả lời câu hỏi của tôi: xem RailsCast #264 Guard.

Tôi có bỏ qua điều gì đó trong số Guard README không? Bạn có thể giúp đỡ hoặc chỉ ra một ví dụ tốt? Cảm ơn!

+1

Tốt nhất là nên xem xét nguồn của một số nhân viên bảo vệ sẵn có và học hỏi từ họ. –

+0

Cảm ơn Andrew. Tôi đã xem xét một ví dụ cho chính xác lý do đó. Tuy nhiên, tôi đã không chắc chắn nơi để đặt các tập tin nếu tôi không muốn đóng gói chúng như một viên ngọc. –

Trả lời

5

Ngọt ngào! Tôi chỉ tìm thấy một trang Wiki trên trang wiki bảo vệ có tiêu đề Create a guard để trả lời các câu hỏi của tôi. Nó không được đề cập trong README, vì vậy tôi phải đào nó.

+0

Nhờ [cam kết bảo vệ gần đây] (https://github.com/guard/guard/commit/560515a2e1244da7bb21b08a86a8239a93c96669) README đã được cập nhật với thông tin này. –

+0

Cảm ơn bạn đã đặt tất cả nỗ lực này vào bài đăng tự; đánh giá cao – iono

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