Date-Set TODO (Some items apply to Set::Infinite) enable 'complement' tests in t/recurr.t (disabled in version 1.27) make better examples test new() with Date::ICal objects DONE: first() should work for recur_by_rule - use same algorithm as select() DONE: make first work with during() and other "intersections" - tests fail in t/recurr.t DONE: test recur_by_rule min DTSTART a package global $DTSTART might be useful WKST Test (api2.t): as method, global and as recur parameter. EXCLUDE exclude might have problems applying an unbounded recurrence to another unbounded recurrence RRULE DONE: should not backtrack if it can solve using COUNT where do "DUE" belong? TZ ? try to give min/max even if 'too_complex' SYNTAX 'iterate' options 'no-sort', 'no-merge', 'keep-null' ... extra: wrappers (like: weekday('thursday') ) some tough cases: yearweek(10) monthweek(2) -- partly done: ICalSet.pm 'select' switch for negative-index overflow behaviour (end of subset, or end of freq) tests: add test for negative 'by' negative values in select should count backwards from end -- test! insert debug -- ical.pl 134 should show 2001-09-30 remove 'interval' option from select old: correct syntax problems due to accepting ( [ 1 .. 10 ] ) as input - see POD. make 'freq' work with 'days', etc. extra: make offset accept ICal times extra: offset option "middle" extra: "indexes" filter to help dealing with sparse lists: (,,10,,12,,14,,,)->indexes gives (2,4,6) extra: Make a 'strict' option for "quantize" and other filters, that will intersect each unit back to the object, that is: Interval: [************************] Quantized: [*********)[*********)[*********) Quantized->Stricted: [*****)[*********)[******] think about: "push-pop", "dup", "drop" mechanism think about: some "if-else" mechanism TESTS test fractional seconds DOCUMENTATION Move whatever is interesting in recur_by_rule() into event() docs. document: new method 'compact', 'numeric' offset option 'mode=>circle' iterate no_cleanup document '->trace({options})->' method document: quantize extensibility through hash-subs document: $FUTURE $PAST $FOREVER $NEVER POD TODO - more SYNOPSIS - more COOKBOOK - more INHERITED METHODS - as_years, next_year: explain this and give more examples, cookbook-style. - more 'OLD-API' - include the functions to check/set 'open-begin' and 'open-end' intervals - include internal methods CACHEING make a 'flush'-cache method. Make a 'cache-registry'. think about: caching for union, etc extra: caching for filters. OTHER check for negative-epoch errors (quantize, select, offset). remove a lot of debug #-print lines internal: it may be good to have a pointer to the "root" object in the filters. They already have a "parent" pointer. oo: provide a general filter "install" mechanism (quantize, select, etc) check: cleanup "type" hack old: Make a global mode for `open_*' old: Quantize_Date should care of daylight savings time