RAA - corporatetime/0.3.2

corporatetime / 0.3.2

Short description: Ruby/CorporateTime
Category: Library/Calendar
Status: alpha, but quite useable
Created: 2002-12-31 15:00:00 GMT
Last update: 2004-11-07 07:44:32 GMT
Owner: Ian Macdonald (Projects of this owner)
Homepage: http://www.caliban.org/ruby/
Download: http://www.caliban.org/files/ruby/ruby-CorporateTime-0.3.2.tar.gz
License: GPL
Dependency:
None
Description:

CorporateTime is a proprietary calendar server system produced by Steltor/Oracle.

Ruby/CorporateTime is a Ruby language extension that serves as an interface to the CorporateTime Calendar API (CAPI). Its purpose is to allow interaction with CorporateTime servers via the Ruby programming language.

In order to use this software, you should have the CAPI libraries installed on your computer. These can be obtained from Steltor/Oracle. To build from source, you'll also need the ctapi.h header file, once again available from Steltor.

Ruby/CorporateTime has been verified to work with version 2.0 of the CAPI libraries, and with Steltor CorporateTime server 5.2 and 5.4, plus Oracle CorporateTime server 9.0.4.2 (standalone). Both the client and the server were running Linux in these tests.

The 'alpha' status of Ruby/CorporateTime should be taken to mean that the calling interface to methods may change, not that the functionality is barely implemented or that the code is given to crashing. On the contrary, it's quite useable and the archive comes with several demonstration programs.


Changes in 0.3.2:

Start and end time parameters to CTime#get_events may now be of any class that responds to the strftime method. The same applies to the start time parameter passed to Event.new. Previously, each of these parameters could only be a String.

Start and end time parameters to CTime#get_events are now automatically converted to UTC, if they respond to either the gmtime or new_offset methods. The same applies to the start time parameter passed to Event.new.

The example programs have been updated and simplified to reflect these changes.


Changes in 0.3.1:

Event objects now have a new attribute, @ics, which contains the raw iCalendar stream for that object.

UTF-8 to Latin 1 conversion, introduced in 0.3.0, has been fixed.

Event#inspect is now Event#to_s. Event#inspect has been rewritten to return the raw iCalendar stream for the associated event.


Changes in 0.3.0:

Alarms are now ignored when parsing events. Specifically, an alarm's description would overwrite the event's description and render this useless.

CTime#get_events now takes an optional third parameter. If set to false, the raw iCal stream will be returned instead of an array of event objects.

Event object values are now automatically converted from UTF-8 to Latin 1.


Changes in 0.2.3:

Event setting was still broken. It is now truly fixed.


Changes in 0.2.2:

Event setting was broken in version 0.2.0. This version fixes that bug.


Changes in 0.2.1:

The event parser has been fixed to handle DATE values. It returns start_time and end_time at the beginning/end of the day in localtime. Also, the case of a missing end_time has been fixed, since this is actually legal.

The event description and summary are now unescaped during parsing.


Changes in 0.2.0:

This release owes many thanks to my colleague at Google, Kevin McCarthy. He has revamped a lot of the interfaces.

A compatibility layer has been added to work with different versions of the CAPI.

The CAPIHandle object is now wrapped in the Agenda object returned by ct_open_agenda. The Agenda object should now be passed to close_agenda.

A bug was fixed in close_agenda.

ct_get_events has been made more efficient.

New Event and Attendee classes have been created. iCal stream parsing has been moved into the Event class.



Changes in 0.1.4:

A warning issued when CTime objects were instantiated in Ruby 1.8.0 is now averted.


Changes in 0.1.3:

Ruby/CorporateTime now works with CAPI 2.5.1 from Oracle. Making this work revealed a nasty bug in previous versions, whereby CAPI_DestroyStreams() would be called before the event stream had been parsed. This has been fixed.

CTime#get_events is now back to taking just two parameters. A call to this method will attempt to fetch the full list of associated properties. If this is unsuccessful (due to restricted permission on the server), the underlying C code will make a second call to CAPI_FetchEventsByRange(),
requesting just the start and end times of the event, plus the duration.

CTime::Event objects now have the extra attribute @end. The reason for this addition is that Oracle has broken backwards compatibility for CAPI_FetchEventsByRange() in version 2.5 of the CAPI. Calls to previous versions returned the duration of the event in the DURATION iCalendar attribute, but the newer version dispenses with DURATION in favour of DTEND.

As a consequence, CTime#get_events with CAPI 2.5 and later will set @end, but not @duration, whereas it will set @duration, but not @end with previous versions. It is hoped to handle this transparently in the future, so that both @duration and @end are set, regardless of which version of
the CAPI is used.

Note that CTime#set_event is unaffected by this change. @duration should be set for the object passed to the method, regardless of the version of the CAPI you are using.

All-day events are now handled a little more gracefully when using the CTime#get_events method. When an all-day event is found, both @start and @end will be set to the same value. However, this string does not contain the usual time specification of 'yyyymmddThhmmssZ', but instead a simple date specification of 'yyyymmdd'.

It is not yet possible to use CTime#set_event to set an all-day event.

Finally, the calendar stream is printed a little more legibly when running in debug mode.


Changes in 0.1.2:

CTime#get_events now takes a third parameter, which is a constant that determines whether a full property list should be obtained for each Event object. The access level of some events prevents the full property list from being retrieved. In these cases, CTime::RESTRICTED_PROPERTIES should be used. In all other cases, CTime::ALL_PROPERTIES is appropriate.


Changes in 0.1.1:

When fetching events using the CTime#get_events method, the stream now properly decodes MIME quoted-printable strings, which means you no longer have to manually do this for instance variables such as @summary, @description and @location.

Versions: [0.4.9 (2006-05-25)] [0.4.8 (2005-04-14)] [0.4.7 (2005-03-19)] [0.4.6 (2005-02-26)] [0.4.5 (2005-02-09)] [0.4.4 (2005-01-29)] [0.4.3 (2005-01-25)] [0.4.2 (2005-01-14)] [0.4.1 (2004-12-14)] [0.4.0 (2004-12-10)] [0.3.4 (2004-11-21)] [0.3.3 (2004-11-12)] [0.3.2 (2004-11-07)] [0.3.1 (2004-11-02)] [0.3.0 (2004-11-02)] [0.2.3 (2004-09-21)] [0.2.2 (2004-05-26)] [0.2.1 (2004-05-13)] [0.2.0 (2004-04-21)] [0.1.4 (-)]

Edit this project (for project owner)

back to RAA top