$Id: CHANGES,v 1.9 2004/05/26 04:08:44 ianmacd Exp $


0.2.2
-----

Fixed the setting of events, which was broken in 0.2.0. Time for some
unit-tests ;-)


0.2.1
-----

Fixed the event parser to handle DATE values. It returns start_time and
end_time at the beginning/end of the day in localtime. Also fixed the case for
a missing end_time, which is actually legal.

Event description and summary are now unescaped during parsing.


0.2.0
-----

Added a compatibility layer to work with different versions of the CAPI.

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

Fixed a bug in close_agenda to pass in a (CAPIHandle *) instead of CAPIHandle.

Eliminated the second fetch attempt (with less attributes) in ct_get_events.
The server will return all attributes it can, there's no need to requery.

Created new 'Event' and 'Attendee' classes. Moved iCalendar parsing into the
Event class.


0.1.4
-----

When using Ruby 1.8.0, a warning would be issued when instantiating a
CTime object. This is now avoided.


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.


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.


0.1.1
-----

MIME quoted printable strings are now decoded in ct_get_events(), so it's
not necessary to strip '=20' from the end of @summary, @description, etc.
