[ANN] Revolution - a Ruby binding to Evolution

T

Tom Copeland

I've just released v0.1 of Revolution, a Ruby binding to the excellent
Evolution personal information management (PIM) application.

Here's how you can use it to get to contact/calendar/task information:

==============================
require 'revolution'

r = Revolution::Revolution.new

r.get_all_contacts.each {|c|
puts "First name: #{c.first_name}"
puts "Last name: #{c.last_name}"
puts "Work email: #{c.work_email}" if !c.work_email.nil?
}

last_week = Time.new.to_i-(7*24*60*60)
next_week = Time.new.to_i+(7*24*60*60)
r.get_all_appointments(last_week, next_week).each {|appt|
puts "Summary: #{appt.summary}"
puts "Location: #{appt.location}"
puts "Start time: #{appt.start}"
}

r.get_all_tasks.each {|t|
puts "Task (#{t.uid})"
puts "Summary: #{t.summary}"
puts "Description: #{t.description.slice(0,70)}"
puts "Start date: #{t.start}"
}
==============================

You can install the Gem using "gem install --remote revolution", or you
can download various things here:

http://rubyforge.org/frs/?group_id=576

and more documentation is available here:

http://revolution.rubyforge.org/

Thanks to InfoEther (http://infoether.com/) for sponsoring development
of this library!

Yours,

Tom
 
S

Sam Roberts

Can you extract/add contacts in vcard formats?

Can you get/add appointments/tasks/todos in icalendar format?

I discovered some users of vPim using a cmd-line tool (of Evolutions, I
guess) to pull everything out in vCard format, and then use a tool from
vPim to search for email addrs, and convert to either a mutt aliases
file, or to the mutt query format.

It would be easier and faster, I'd think, to do this directly. I'll send
you the scripts so you can see what the formats are, you might find it
interesting to add tools like this.

I'm interested in adding icalendars because I use mutt for email, and I
process incoming calendars (meetings, mostly) with it. I would use
Evolution for a pretty display of that info.

Thanks,
Sam
 
T

Tom Copeland

Can you extract/add contacts in vcard formats?
Can you get/add appointments/tasks/todos in icalendar format?

Not yet... but those sound like good RFEs!
I discovered some users of vPim using a cmd-line tool (of Evolutions, I
guess) to pull everything out in vCard format, and then use a tool from
vPim to search for email addrs, and convert to either a mutt aliases
file, or to the mutt query format.
Nifty!

It would be easier and faster, I'd think, to do this directly. I'll send
you the scripts so you can see what the formats are, you might find it
interesting to add tools like this.

Cool, right on!
I'm interested in adding icalendars because I use mutt for email, and I
process incoming calendars (meetings, mostly) with it. I would use
Evolution for a pretty display of that info.

Yup, sounds like a winner.

Yours,

Tom
 
L

leon breedt

I've just released v0.1 of Revolution, a Ruby binding to the excellent
Evolution personal information management (PIM) application.
Hi Tom,

This sounds great...

A small suggestion for improvement: mkmf.rb has support for
pkg-config, and that will let you know whether the .pc files were
found or not (returns nil if not found):

require 'mkmf'

pkg_config('libebook-1.0')

In addition, at first attempt, it appears that your extension is
compatible with the latest versions of Evolution's libraries (1.2) as
well, by just replacing 1.0 with 1.2 in extconfig.rb.

So perhaps your extconf.rb use this idiom, to use the latest and
fallback to the older:

pkg_config('libebook-1.2') || pkg_config('libebook-1.0')


Regards,
Leon
 
T

Tom Copeland

A small suggestion for improvement: mkmf.rb has support for
pkg-config

Very cool, thanks very much Leon! This is my first Ruby extension, so
I'm not familiar with a lot of the mkmf features... I'll definitely use
this one.

Thanks again,

Tom
 
L

Laurent Sansonetti

I've just released v0.1 of Revolution, a Ruby binding to the excellent
Evolution personal information management (PIM) application.

Here's how you can use it to get to contact/calendar/task information:

==============================
require 'revolution'

r = Revolution::Revolution.new

r.get_all_contacts.each {|c|
puts "First name: #{c.first_name}"
puts "Last name: #{c.last_name}"
puts "Work email: #{c.work_email}" if !c.work_email.nil?
}

last_week = Time.new.to_i-(7*24*60*60)
next_week = Time.new.to_i+(7*24*60*60)
r.get_all_appointments(last_week, next_week).each {|appt|
puts "Summary: #{appt.summary}"
puts "Location: #{appt.location}"
puts "Start time: #{appt.start}"
}

r.get_all_tasks.each {|t|
puts "Task (#{t.uid})"
puts "Summary: #{t.summary}"
puts "Description: #{t.description.slice(0,70)}"
puts "Start date: #{t.start}"
}
==============================

You can install the Gem using "gem install --remote revolution", or you
can download various things here:

http://rubyforge.org/frs/?group_id=576

and more documentation is available here:

http://revolution.rubyforge.org/

Thanks to InfoEther (http://infoether.com/) for sponsoring development
of this library!

Very nice!

Any plan to use Ruby/GLib2 in the future?

Thanks

Laurent
 
T

Tom Copeland

Very nice!
Thanks!

Any plan to use Ruby/GLib2 in the future?

I'm not sure... what's it licensed under? I poked around on the site a
bit but must be missing it...

Thanks,

Tom
 
L

Laurent Sansonetti


Do not forget to announce it on the gnome-announce ML (sorry if
already done), I am sure it will interest some people :)
I'm not sure... what's it licensed under? I poked around on the site a
bit but must be missing it...

LGPL. I believe it is compatible with your license (though I am not a
license specialist).

Laurent
 
T

Tom Copeland

Do not forget to announce it on the gnome-announce ML (sorry if
already done), I am sure it will interest some people :)

That's a good idea, I'll do that, thanks for the pointer!
LGPL. I believe it is compatible with your license (though I am not a
license specialist).

Nor I. But it's definitely food for thought, and thanks for the info!

Yours,

Tom
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,766
Messages
2,569,569
Members
45,042
Latest member
icassiem

Latest Threads

Top