Как взаимодействовать с сервером CalDAV от Ruby? [закрытый]

Мне нужно создать события на сервере календаря, используя CalDAV из приложения Ruby (Rails, чтобы быть точным). Я просмотрел несколько разных библиотек и немного погуглил.

Я посмотрел на РИ-кала (http://ri-cal.rubyforge.org/rdoc/ ), но не был уверен, что он поддерживает отправку данных на сервер или если я должен был сделать это сам,

это выглядело многообещающе http://www.local-guru.net/blog/pages/rubycaldav, но он говорит, что это альфа софт, мне нужно что-то стабильное.

каков наилучший способ сделать это? Есть ли какая-либо библиотека, которая уже делает это, нужно ли мне формировать собственные HTTP-запросы?

любые советы по этому вопросу appreceated

4 ответов


Я закончил с использованием библиотеки http://www.local-guru.net/blog/pages/rubycaldav

мне пришлось адаптировать его работу с SSL и правильно использовать библиотеку UUID, правильно форматировать даты и работать с событиями полного дня. Поскольку мне нужно было только создавать и уничтожать события, которые я обновил. Я планирую сделать больше, когда у меня есть время.

мой обновленный код можно найти здесь https://github.com/loosecannon93/ruby-caldav.

проблема, с которой я столкнулся, заключалась в неправильном форматировании дат и отсутствии UUIDs.

на caldavtest.rb файл на GitHub - это то, что я использовал для работы

дополнительным осложнением, с которым я столкнулся, было то, что Zimbra ( сервер ) имеет 2 пути, один для файлов ICS, которые только для чтения /home/user@host/Calender и один для CalDAV /dav/user@host/Calendar

Я надеюсь, что кто-то может помочь найти это решение.

однако существует существенный недостаток реализации cladav для Руби. Есть библиотеки ICS, которые формируют объекты, но есть только чистая Net::HTTP для взаимодействия с сервером. Local-guru-единственный Рубин, который я нашел, который работает в обоих направлениях, но он нуждается в некоторой помощи с незначительными проблемами.

я исправил некоторые из них, но не проект, я просто пришлось заставить его работать. Но если кто-то хотел бы внести свой вклад, я хотел бы помочь.


одно из моих любимых мест для проверки возможных вариантов включено Ruby Toolbox. Это будет одно из первых мест, где я проверю.

Я бы также проверил github, который дал результат что может быть вашим самым лучшим вариантом и как раз чего вы ищете.

Что касается ответов на ваши другие вопросы, я, вероятно, сверну свой собственный, взглянув на оба этот пост и этот код.

Итак, длинный ответ сильно сокращен, да, есть библиотеки, которые уже выполняют то, что вы хотите сделать, но на моем месте я бы свернул свое собственное решение для чего-то такого конкретного.


вы размещаете свои календари в google? если да, то посмотрите на: https://github.com/northworld/google_calendar


мы использовали caldav4j как наше приложение было развернуто в последние. Не знаю, подходит ли это вам.