2011-08-05 29 views
5

Tôi muốn viết một trình lắng nghe (mô-đun ruby) để xác định việc tạo tệp trong một thư mục. Kịch bản của tôi là như sauviết một người nghe thay đổi tập tin trong ruby ​​

  • Tôi có một thư mục có tên (file)
  • tôi có một dự án đường ray mà sẽ tạo ra một tập tin (demo.txt) bên thư mục ('file')
  • tôi cần phải viết một người nghe để xác định thay đổi tập tin và bắt đầu đọc tệp (demo.txt)

Tôi không biết bắt đầu từ đâu khi tạo mô-đun ruby ​​này. Xin vui lòng bất cứ ai có thể giúp tôi chỉ đạo tôi trên con đường chính xác.

này là phiên bản ruby ​​Tôi đang sử dụng 'ruby 1.8.7 (2010/06/23 patchlevel 299) [i686-linux]

cảm ơn trước

cổ vũ

Sameera

Trả lời

7

Có một vài thư viện nhỏ mà bạn có thể sử dụng, học hỏi từ hoặc xây dựng dựa trên, ví dụ:

công cụ phát triển Agile theo dõi một cây thư mục, và gây ra một hành động người dùng định nghĩa bất cứ khi nào một tập tin quan sát được sửa đổi. Cách sử dụng điển hình nhất của nó là thử nghiệm liên tục, và như vậy nó là một sự thay thế linh hoạt hơn cho tự động.

Các quan sát thư mục hoạt động bằng cách quét một thư mục tại một số khoảng thời gian và tạo ra một danh sách các tập tin dựa trên một người dùng cung cấp mẫu glob. Khi danh sách tập tin thay đổi từ một khoảng thời gian sang lần tiếp theo, các sự kiện sẽ được tạo và gửi đến các nhà quan sát đã đăng ký. Ba loại sự kiện được hỗ trợ - thêm, sửa đổi và xóa.

Guard là một công cụ dòng lệnh để dễ dàng xử lý các sự kiện trên các tập tin sửa đổi (FSEvent/inotify/Polling hỗ trợ).

Đây là một wrapper đơn giản qua hệ thống phụ kernel inotify Linux theo dõi diễn biến các tập tin và thư mục. Nó sử dụng đá quý FFI để tránh phải biên dịch một phần mở rộng C.

+0

Xin chào @miku, http: //codeforpeople.rubyforge.org/directory_watcher/có vẻ là một lựa chọn tốt, cảm ơn – sameera207

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