Changes for DateTime::Set

0.30 2011-04-11
- new test file t/21from_recurrence.t
Contributed by Olivier Mengue

0.29 2011-04-01
- new method is_empty_set - bug #50750

0.28 2009-07-19
- optimized DateTime::Set->as_list().
This works around a segfault reported by Nils Grunwald.

0.27 2009-04-02
- fixed DateTime::Spanset duration() method. Reported by Anton Berezin <tobez@tobez.org>

0.26 2008-12-25
- fixed DateTime::Spanset current() and set_time_zone() methods. Report and tests by Elliot Shank.

0.25 2005-10-05
- t/15time_zone.t does it's own time zone "add_duration" handling

0.24 2005-10-03
- _recurrence.pm warned when the recurrence didn't have occurrences before a given start date. Reported by Mark D. Anderson.

0.23 2005-10-03
- _recurrence.pm died when the recurrence didn't have occurrences before a given start date. Reported by Mark D. Anderson.

0.22 2005-05-06
- DateTime::Set 0.21 dies when as_list is asked to produce a list from outside the range of the set. Patch contributed by Stephen Gowing.

0.21 2005-04-06
- no hard limit in count() and as_list(); removed the warnings from the docs.

0.20 2005-02-28
- changed tests to use en_US instead of pt_BR (which changes every year) by Dave Rolsky.
- optimized SpanSet methods for special cases: start_set()
end_set()
contains( $dt )
intersects( $dt )
- added an example to count(), by David Nicol. - added a note about how the result of min()/max() is just a copy of the actual set boundary. Reported by Ron Hill.

0.19 2004-11-29
- added more comments on as_list() and count() behaviour on large sets. Reported by Rick Frankel (rt ticket 8611)

0.18 2004-11-25
- ignore "__DIE__" signal while calculating durations. Reported by michelle.agnew (rt ticket 5434)

0.17 2004-08-17
- bugfix: it was trying to set the time zone of an "undef" value; this has broken some DT::Event::Recurrence tests - reported by Bill Moseley

0.1603 2004-07-05
- revised documentation, some examples were rewritten. - deprecate "iterate" method
- Build.PM requires Set::Infinite 0.59 - reported by Tim Muller-Seydlitz

0.1602 2004-07-02
- fixed time zone handling in the methods: set_time_zone
next/previous/closest/current

0.1601 2004-03-30
- more parameter checking;
Sets should interoperate better with objects of type DateTime::Event::* and DateTime::Incomplete

0.16 2004-03-29
- Makefile.PL skips processing of "Build.PL" Reported by Reinhold May

0.15 2004-03-28

[ ENHANCEMENTS from version 0.14 ]

0.1413 2004-03-28
- detect_bounded => 1 is deprecated.

0.1412 2004-03-28
- DateTime::Set->from_recurrence - Bounded recurrences are "optional". use " detect_bounded => 1 " to turn them on. This fixes the backwards incompatibilities created by version 0.1402.

0.1411 2004-03-27
- Makefile.PL. Suggested by Randal L. Schwartz.

0.1410 2004-03-26
- Build.PL

0.1409 2004-03-23
- evaluation of bounded recurrences is "lazier". (DateTime::Incomplete tests are twice as fast)

0.1408 2004-03-22
- refactored S::I::_recurrence class:
it doesn't use "current" anymore;
small bugfixes & optimizations.
("current" was not documented in DT::Set) - new test: t/17quantize.t
Tests a method to make "quantization" (or "discretization") of spansets.

0.1407 2004-03-16
- New methods:
DateTime::SpanSet::current
DateTime::Spanset::closest

0.1406 2004-03-15
- New methods:
DateTime::Set::map / grep
DateTime::SpanSet::map / grep
From a discussion with Andrew Pimlott and Dave Rolsky - Cleanup "datetime" code from _recurrence.pm - iterate() marked as "internal"

0.1405 2004-03-15
- New method: DateTime::SpanSet::intersected_spans Suggested by Reinhold May
Name suggested by Dave Rolsky

0.1404 2004-03-14
- New methods: DateTime::SpanSet::start_set / end_set These are the inverse of the "from_sets" method. Suggested by Reinhold May

0.1403 2004-03-10
- new method DateTime::SpanSet::iterate

[ *** BACKWARDS INCOMPATIBILITIES *** ]

0.1402 2004-03-08
- Recurrence functions can be used to generate bounded sets. See: t/16bounded_recurrence.t

[ *** BACKWARDS INCOMPATIBILITIES *** ]

All modules that create their own recurrences must now be able to respond to DateTime::Infinite::Future and DateTime::Infinite::Past parameters. The easiest way to do this is to add this to the first line of the recurrence

subroutines

next => sub {

     return $_[0] if $[0]->isinfinite;
     ...

}
previous => sub {

     return $_[0] if $[0]->isinfinite;
     ...

}

0.1401 2003-11-06
- span() was returning the set, instead of the result.

0.14 2003-11-02
- duration() should not set $@ for sets with infinity duration. Reported by Dan Kubb.

0.13
0.1205 2003-10-16
- requires Set::Infinite 0.54 (it is the "published" version of 0.5307) - DateTime::Set add_duration mutates the set. This is more compatible with the way the DateTime.pm API works. - new DateTime::SpanSet methods:
as_list( $span_spec ), next( $dt|$span ), previous( $dt|$span )

0.1204 2003-10-10
- DateTime::SpanSet and DateTime::Span inherit DateTime::Set $VERSION - Trying to subtract infinity from a datetime is not fatal in duration() Bug report by Dan Kubb.
- new method 'iterate'
- requires Set::Infinite 0.5307 (pass new backtracking tests) - added more tests for add_duration, subtract_duration - added set( locale => .. ) to DateTime::Set

0.1203 2003-09-26
- Added docs to Set::Infinite::_recurrence; split into a separate file such that it doesn't mix the pods - refactored union / intersection
- isrecurrence test prevents error when programming subroutine methods

0.1202 2003-09-24
- fixed set_time_zone and add_duration: was not clearing 'next' upon return, when arg was a recurrence.

0.1201 2003-09-24
- optimized contains() and intersects() when arg is a datetime - recurrence constructor always adds '->clone' to recurrence function - refactored _recurrence method;
first/last of recurrences are calculated 'on demand' - requires Set::Infinite 0.5305

0.12 2003-09-22
- implement previous() in DT::SpanSet.pm - Fixed: set_time_zone would mutate a clone.

0.11 2003-09-19
- Fixed callback return value on set_time_zone. This caused the start date to be equal to the end date. Bug found by Dan Kubb.

0.10 2003-09-02
- DateTime::Span->duration now uses the new subtract_datetime_absolute method, which means that the duration is always given in seconds.

0.09 2003-08-18
- added DT::Set count()
- fixed DT::SpanSet duration()
- methods that accepted a DT object, now accept a list of DT objects. Suggested by Ben Bennet, I think.
- added callbacknext - "previous-only recurrences"

0.08 2003-05-30
- recurrence set intersection uses 'current' - fixed a number of methods in DateTime::Span, including intersection, intersects, contains, union, and complement, all of which called the non-existent DateTime::Set->new method. Dave Rolsky.

0.07 2003-05-23
- some tweaking on intersection, union, and in the recurrence generator. - more tests

0.06 2003-05-14
- added 'use warnings' in some tests, added DateTime 0.12 prereq.

0.04 2003-05-12
- change "closest" code to avoid duration comparison

0.03 2003-04-27
- fixes in Set.pm as_list, span.
- iterator accepts 'span' parameters. Ben Bennett - remove deprecated DateTime::Set->new and DateTime::SpanSet->new. Dave Rolsky - requires Set::Infinite 0.49

0.02 2003-04-20
- removed some calls to 'new'
- added many methods from DT::Event::Recurrence - add 'span' parameter to as_list
- from_recurrence now accepts next + previous

0.01 2003-04-19

0.00_20 2003-04-10

0.00_18 2003-03-25

0.00_13 2003-03-19

0.00_10 2003-03-14

0.00_07 2003-02-28