SWIGforEDS
From Evolution
Work in progress
Proof of concept code can be downloaded at http://shres.in/evo-swig.tar.gz . You will need evolution data server and ruby development files/packages. You will need the evolution data server developer packages. the ruby developer packages and SWIG 1.3.24 or above. Then download and untar the file to some directory, open a command line in that directory and follow this steps:
$ cd evo-swig $ sh gen_evo_ruby.sh $ cd ruby $ ruby extconf && make
If you are lucky and it compiled well (it will show a couple of warnings but it should compile and link) you can try to install it and run the tests:
$ sudo make install $ cd tests $ ruby run_tests.rb
Test by invoking irb:
$ irb irb(main):001:0> require 'evolution' => true irb(main):002:0> Evolution.get_esource_groups.each{ |group| irb(main):003:1* group.each { |source| irb(main):004:2* puts "------------------------------------------" irb(main):005:2> puts "Calendar: #{source.name}" irb(main):006:2> puts "------------------------------------------" irb(main):007:2> cal=Evolution::ECal.new(source) irb(main):008:2> puts cal irb(main):009:2> } irb(main):010:1> }
This ought to dump all your calendars in ical form. A more involved example is detailed in SWIGCalendarShare. A brief tutorial can be found in SWIGForEDSTutorial
Some notes:
- This is proof of concept code! Don't expect it to work.
- Any changes made to the interface files may/will require following steps from sh gen_evo_ruby.sh and on.
- Only wraps some functionality of ESource, ESourceGroup, ECalComponent and ECal.
- Only generates a ruby interface right now.
- Writing a python interface should be very easy.
- The code has no license right now (public domain). Unless developers have any suggestions (mail them to the evolution-hackers mailing list) or incompatibilities arise, a LGPL license may be adopted in the future.
The code is in a mercurial repository (included in the tar file)- Compiles with SWIG 1.3.22, 1.3.24 and 1.3.26, GCC 3.3.5 and GCC 4.0 (using g++)
- Tested in Ubuntu Hoary and Mac OS X [*] (special thanks to Shreyas for testing in this platform)
[*] Irb may misbehave on MacOS X if we pass command line parameters. It is much better to first fire irb and then type require 'evolution' to load the evolution module. --Vicent SeguÃ