Hello all,
at long long last I have finally finished the ICal recurrence rule engine. I had to travel to Haskell in back to figure out a way to do it I liked.
Features: - To my knowledge this is the most compliant implementation of Recurrence rules - Full support for Exclusion dates and exclusion rules (!) - Minimal dependency on external libraries
If you look at the implementation you will notice it uses LazyList's to do it's work, which may make it seem a bit complicated. But this allows me to trivially add additional list mutations after-the-fact. For example, exclusion rules (i.e. all the logic of recurrence rules, but "differenced" to the rules to generate exceptions) were actually added in about 15 minutes. I know of no other implementations that have them at all.
The other advantage of the LazyList approach is that no more dates are calculated then needed (well, actually one extra per rule may be if needed for the stop test), but the set is none-the-less infinite.
The can be downloaded via Monticello as part of the iCalendar project with:
MCHttpRepository location: 'http://www.squeaksource.com/ical' user: '' password: ''
Thanks, and let me know if you see any problems with it. Jason
_________________________________________________________________ More photos, more messages, more storageget 2GB with Windows Live Hotmail. http://imagine-windowslive.com/hotmail/?locale=en-us&ocid=TXT_TAGHM_migr...