2011-07-05 26 views
9

Tôi cần tạo sự kiện trên máy chủ lịch sử dụng CalDAV từ trong ứng dụng Ruby (Rails chính xác). Tôi đã xem xét một số thư viện khác nhau và thực hiện một số googling.Làm thế nào để tương tác với một máy chủ CalDAV từ Ruby?

Tôi nhìn ri-cal (http://ri-cal.rubyforge.org/rdoc/) Nhưng wasnt chắc chắn nếu nó được hỗ trợ gửi máy chủ dữ liệu toa hoặc nếu tôi đã phải làm điều đó bản thân mình,

này trông đầy hứa hẹn http://www.local-guru.net/blog/pages/rubycaldav, nhưng nó nói nó là phần mềm alpha, i cần một cái gì đó ổn định.

Cách tốt nhất để làm điều này là gì? Có thư viện nào thực hiện việc này không, tôi có cần tạo các yêu cầu HTTP của riêng mình không?

Bất kỳ lời khuyên nào về chủ đề được đánh giá cao

Trả lời

8

tôi đã kết thúc sử dụng thư viện tại http://www.local-guru.net/blog/pages/rubycaldav

Tôi phải thích nghi cho nó hoạt động với SSL, và sử dụng thư viện UUID một cách chính xác, định dạng ngày một cách chính xác và làm việc với Các sự kiện cả ngày. Vì tôi chỉ cần tạo và phá hủy các Sự kiện là tất cả những gì tôi đã cập nhật. Tôi dự định làm nhiều việc hơn khi tôi có thời gian.

Mã được cập nhật của tôi có thể được tìm thấy tại đây https://github.com/loosecannon93/ruby-caldav.

Sự cố tôi gặp phải là cung cấp ngày được định dạng không đúng và thiếu UUID.

File caldavtest.rb trên GitHub là những gì tôi đã từng làm việc

Một Complication thêm tôi chạy vào là Zimbra (máy chủ) có 2 con đường, một cho các tập tin ICS có readonly /home/[email protected]/Calender và một cho CalDAV /dav/[email protected]/Calendar

Tôi hy vọng rằng ai đó có thể tìm trợ giúp với giải pháp này.

Tuy nhiên, việc thiếu triển khai cladav đáng kể đối với Ruby là thiếu đáng kể. Có các thư viện ICS tạo thành các đối tượng, nhưng chỉ có thuần thuần túy :: HTTP để tương tác với một máy chủ. Local-guru's là một trong những ruby ​​duy nhất tôi thấy rằng nó hoạt động theo cả hai cách, nhưng nó đang cần một số trợ giúp với các vấn đề nhỏ.

Tôi đã sửa một số trong số này nhưng không phải là dự án rộng, tôi chỉ phải làm cho nó hoạt động. Nhưng nếu ai đó muốn đóng góp, tôi rất muốn giúp đỡ.

0

Chúng tôi đã sử dụng caldav4j vì ứng dụng của chúng tôi đã được triển khai trong JRuby. Không biết liệu đó là một lựa chọn cho bạn hay không.

2

Một trong những địa điểm yêu thích của tôi để kiểm tra các tùy chọn có thể là trên Ruby Toolbox. Đây sẽ là một trong những nơi đầu tiên tôi sẽ kiểm tra.

Tôi cũng sẽ kiểm tra github, mang lại this result có thể là lựa chọn tốt nhất của bạn và chỉ là những gì bạn đang tìm kiếm.

Khi trả lời các câu hỏi khác của bạn, tôi có thể sẽ tự cuộn sau khi xem cả hai this postthis code.

Vì vậy, câu trả lời dài bị rút ngắn, có thư viện đã hoàn thành những gì bạn đang tìm kiếm, nhưng nếu là tôi, tôi sẽ tự giải pháp cho một thứ cụ thể.

+2

haha, cảm ơn bạn đã trả lời, liên kết "mã này" thực sự là giải pháp của tôi (tôi đã kết thúc bằng việc tự xoay sở của mình, dựa trên một số nội dung khác, không thực sự nhớ đây là một lúc trước) – loosecannon

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